2013-10-16 2 views
-1

Это весь код, который должен быть указан в запросе 3 или 4. Как видите, запрос 3 просто получает информацию для построения запроса 4, который должен возвращать результаты.SQL-запрос, не отображающий более одной строки

У меня есть запрос 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 
?> 
+4

или что вы не только перезапись этих 2 переменных в цикле, но вы затем печати $ строки после цикла заключает –

+0

вы пытаетесь отладить его с помощью 'var_dump ($ result3)'? –

ответ

1

print $row; действует только внутри цикла, если вы хотите напечатать все из них. В противном случае он будет печатать только последние $row. Сделать это

while($row = mysql_fetch_array($result3)) 
{ 
    $foreignidextra = $row['foreign_id']; 
    $qtyextra = $row['cnt'];    
    print $row; 
} 
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 каждый раз, когда цикл повторяется

Смежные вопросы