2015-04-03 144 views
0

基本上我首先從mysql表中查詢特定的列,並希望在php中使用foreach()來回顯它們。 這是我的代碼。php,mysql - 從mysql表中查詢數據並顯示每個使用的結果

$sql = "SELECT id, name, roll_no, email, title, abstract, supervisor, sub_date 
     FROM student_data"; 

$result = $conn->query($sql); 
$array = $result->fetch_assoc(); 

foreach ($array as $x => $value) 
{ 
    echo $array["id"] . " " . $array["name"] . " " . $array["roll_no"] . " " . $array["title"] . " " . $array["supervisor"] . " " . $array["sub_date"] ."<br><br>"; 
} 

它只是不斷重複第一個條目。

回答

0

你的主要missunderstanding是$array = $result->fetch_assoc();只返回一個結果。要獲得第二個,你應該再次撥打$result->fetch_assoc()。 所以你應該這樣迭代

while ($array = $result->fetch_assoc()) { 
echo $array["id"] . " " . $array["name"] . " " . $array["roll_no"] . " " . $array["title"] . " " . $array["supervisor"] . " " . $array["sub_date"] ."<br><br>"; 
} 
2

你只循環第一個結果集中的元素。您需要通過整個結果集進行迭代:

while($array= $result->fetch_assoc()) { 
    echo $array["id"] . " " . $array["name"] . " " . $array["roll_no"] . " " . $array["title"] . " " . $array["supervisor"] . " " . $array["sub_date"] ."<br><br>"; 
}