2017-07-14 11 views
-1

私はフィールドを持つテーブルを持っています:id、number、title。販売のリストを表示します。ある販売では、いくつかのタイトルがあるかもしれません。PHPのクエリで行をソート

$todbprod = $mysqli->query('SELECT waybills.waybill_id AS id, waybills.goods_id AS number, nalvmag.name AS title 
FROM `waybills`, `nalvmag` 
WHERE waybills.goods_id = nalvmag.id ORDER BY waybills.waybill_id'); 
while($row = $todbprod->fetch_array()) 
{ 

echo "sale: ".$row['id']."<br>\n"; 
echo "product: ".$row['number']."\n"; 
echo "name: ".$row['title']."<hr>\n"; 
} 

今では、このように出力されます: 私はこのコードを持っている

- sale 01, title 01 
- sale 01, title 02 
- sale 01, title 03 
- sale 02, title 01 

をそして、私はリストに導きたい:

- sale 01 
    - title 01 
    - title 02 
    - title 03 
- sale 02 
    - title 01 
+0

何を試しましたか? – cweiske

答えて

2

あなたの結果セットは売り上げオーダーになっていますので、次のロジックを使って印刷を試してみてください。

以前に見たことのない新しい販売をした場合は、その販売を印刷してください。
上記に印刷されている場合は、可能な販売後に常にタイトルを印刷してください。

$sale = NULL; 
while ($row = $todbprod->fetch_array()) 
{ 
    $new_sale = $row['id']; 
    if ($new_sale != $sale) { 
     $sale = $new_sale; 
     echo "sale: ".$sale."<br>\n"; 
    } 
    echo "name: ".$row['title']."<hr>\n"; 
} 
+0

ありがとう、それは作品です – Vit

0
$array = array(
     array('sale 01', 'title 01'), 
     array('sale 01', 'title 02'), 
     array('sale 01', 'title 03'), 
     array('sale 02', 'title 01') 
    ); 
$new = array(); 
foreach($array as $row){ 
    $new[$row[0]][] = $row[1]; 
} 
echo "<pre>";print_r($new); 

新しい$は、配列が含まれていますあなたがしたい....

関連する問題