繁体   English   中英

数据库PHP MySQL中的多个查询

[英]Multiple queries in database PHP MySQL

我想制作一个页面,您可以在其中查看所有产品图像(已经成功显示在products.php下面的图像)和所有类别。

但是我该如何进行第二次查询? 在一种连接中有可能吗?

类别列表的查询必须为:

SELECT category_name FROM categories

而在PHP中类似:

while ($row = mysql_fetch_assoc($result)){
    echo("<li>");
    echo($row["categorie_name"])
    echo("</li>"); 
}

我怎样才能做到这一点或这是不可能的?

db_config.php

<?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASS', '');
    define('DB_NAME', 'sopranos');
?>

db_open.php

<?php
    $connection = mysql_connect(DB_HOST, DB_USER, DB_PASS);
    $db = mysql_select_db(DB_NAME);
    $result = mysql_query($query, $connection);
?>

db_close.php

<?php
    mysql_free_result($result);
    mysql_close($connection);
?>

products.php

<?php
    include('db_config.php');

    $query  = "SELECT * ";
    $query .= "FROM products ";
    $query .= "WHERE product_category =";
    $query .= $_GET["cat"];

    include(db_open.php');

    while ($row = mysql_fetch_assoc($result)){
        ?>
        <div class="product">
            <img alt="product details" src="images/product_
                <?php echo($row['product_id']) ?>
           .jpg" /> 
       </div>
       <?php
    }
    include(db_close.php');       
?>

您是否尝试过创建一个新的变量$query然后添加您的while ($row = mysql_fetch_assoc($result))这个&&看起来像while ((($row = mysql_fetch_assoc($result)) && (($row2 = mysql_fetch_assoc($result2)) )吗?

相同的连接是什么意思?

如果您要在同一页面中分别执行两个查询,那么可以通过使用db_open.php连接数据库一次来完成此操作,然后按以下方法创建查询:

$first_query = mysql_query("Select * from table1"); 
while($first_query = mysql_fetch_assoc($first_query){
//code goes here
}

$second_query = mysql_query("Select * from table2"); 
while($second_query = mysql_fetch_assoc($second_query){
//code goes here
}

但是,如果您要在同一连接中运行两个查询(防止数据库访问时间损失),则取决于您使用MYISAM或INNODB的引擎,但是在您的情况下,您仅运行2个选择查询,这不会影响页面加载速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM