2015-09-04 57 views
0

我想要發生的是...我知道如果進入foreach,但我似乎無法開始工作。請幫幫我。
PHP foreach並從表格行返回唯一標頭

GDESCRIP
代碼,記述
代碼,記述
代碼,記述
GDESCRIP
代碼,記述
代碼,記述
代碼,記述

$query = "Select gdescrip, code, descrip from sometable group by gdescrip order by code"; 
$result = $conn->query($query); 
if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_array()) 
     { 
      $rows[$row['gdescrip']][] = $row['code']; 
     } 
    foreach($rows as $key => $category) 
     echo '<strong>' .$key. '</strong><br />'; 
    foreach($category as $item) 
     { 
      echo '<input type="radio" name="'.$item.'">' . $item .' </input><br/>'; 
     } 
} 
else { 
    echo "0 results"; 
} 
+0

您沒有在'$ rows'中放置'$ row ['descrip']。 – Barmar

回答

1

您並未將$row['descrip']放入$rows。最簡單的方法是向$rows添加另一個維度,並將查詢返回的整行放入該維度。

while ($row = $result->fetch_array()) { 
    $rows[$row['gdescrip'][] = $row; 
} 

第二foreach環需要被嵌套在第一個內部。

foreach ($rows as $key => $category) { 
    echo "<strong>$key</strong><br/>"; 
    foreach ($category as $item) { 
     echo "<input type='radio' name='{$item['code']}'>{$item['code']} {$item['descrip']}<br/>"; 
    } 
} 

而且沒有這樣的東西</input>; <input>是自閉的,它不包含其他元素。

0

這是我能夠工作的。顯然這不是mysqli,但顯然我只是不太瞭解mysqli來改變這個腳本,以便它能夠工作。有人請隨時指出我錯過了mysqli轉換。提前感謝您的知識。

$categories = array(); 
$result = select statement; 
while($row = mysql_fetch_assoc($result)){ 
    $categories[$row['gdescrip']][] = $row; 
} 
foreach($categories as $key => $category){ 
echo '<strong>' .$key. '</strong><br/>'; 
foreach($category as $item){ 
    $key = str_replace(' ',"_",$key); 
    echo '<input type="radio" name="'.$key.'" value="'.$item['code'].'">' .$item['code'] . $item['DESCRIP'] . '<br/>'; 
} 
}