SQL查询未显示超过1行

时间:2013-10-16 01:06:41

标签: php sql

这是错误必须在查询3或4中的整个代码。如您所见,查询3只获取信息以构建查询4,该查询应返回结果。

我有查询1& 2工作正常,显示正确的数据。

<?php
session_start();
//printf('<pre>%s</pre>', print_r($_SESSION, true));
require('includes/config.inc.php');
require('includes/session.php');

//WORKING
DB_Connect();
$query = "SELECT * FROM food_delivery_orders_items WHERE food_delivery_orders_items.type = 'product' AND food_delivery_orders_items.order_id=".$_SESSION['pdf_quote']['id']."";

$result = mysql_query( $query) or die(mysql_error());

while($row = mysql_fetch_array($result)) 
            {
         $hash = $row['hash'];
         $foreignid = $row['foreign_id'];
          $qty = $row['cnt'];                   
            }


$query2 = "SELECT * FROM food_delivery_products WHERE food_delivery_products.id = ".$foreignid."";

$result2 = mysql_query( $query2) or die(mysql_error());

while($row = mysql_fetch_array($result2)) 
            {
         $name = $row['name'];
         $description = $row['description'];                
            }



    //---------------------------------------------------------------------------------------------------------------

    $query3 = "SELECT * FROM food_delivery_orders_items WHERE food_delivery_orders_items.type = 'extra' AND food_delivery_orders_items.order_id=".$_SESSION['pdf_quote']['id']."";

$result3 = mysql_query( $query3)or die(mysql_error()) ;

while($row = mysql_fetch_array($result3)) 
            {

         $foreignidextra = $row['foreign_id'];  
         $qtyextra = $row['cnt'];           

            }


            $query4 = "SELECT * FROM food_delivery_extras WHERE food_delivery_extras.id = ".$foreignidextra."";

$result4 = mysql_query( $query4) or die(mysql_error());

while($row = mysql_fetch_array($result4)) 

            {
         $nameextra = $row['name'];

            }

    echo $nameextra;
    echo $qtyextra;

DB_Disconnect();





//$products = implode(", ",$_SESSION['pdf_quote']['product_arr']);;

//print $products
?>

2 个答案:

答案 0 :(得分:1)

如果要打印所有这些内容,

print $row;仅在循环内有效。否则,它将仅打印最后$row。做到这一点

while($row = mysql_fetch_array($result3)) 
{
    $foreignidextra = $row['foreign_id'];   
    $qtyextra = $row['cnt'];            
    print $row;
}

答案 1 :(得分:1)

因为你在执行$row循环后打印while

因此它只打印最终结果集

使用类似的东西:

$query3 = "SELECT * FROM food_delivery_orders_items WHERE food_delivery_orders_items.type = 'extra' AND food_delivery_orders_items.order_id=".$_SESSION['pdf_quote']['id']."";

$result3 = mysql_query( $query3) ;

while($row = mysql_fetch_array($result3)) 
{
    $foreignidextra = $row['foreign_id'];   
    $qtyextra = $row['cnt']; 
    print_r($row);           
}

您也可以使用var_dump($row);代替print_r($row);

这将在每次循环迭代时输出存储在$row数组中的所有值