2012-04-19 92 views
0

我已經在腳本中獲得了這段代碼,它只顯示第一行。 任何解決方案? (這不是我的整個腳本)顯示數據庫中的所有行

$sql = mysql_query ('select * from todo'); 
if (!$sql) { 
    die('Invalid query: ' . mysql_error()); 
} 
$taskrow = mysql_query ('select * from todo'); 
     if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    $taak = $_POST['taak']; 
    $beschrijving = $_POST['beschrijving']; 
    $categorie = $_POST['categorie']; 
    $prioriteit = $_POST['prioriteit']; 
    $datum = $_POST['datum']; 
    $query = mysql_query("INSERT INTO todo (taak, beschrijving, categorie, prioriteit, datum) VALUES ('$taak', '$beschrijving', '$categorie', '$prioriteit', '$datum')") or die(mysql_error()); 
} ?> 

<?php $task = mysql_fetch_assoc($taskrow); ?> 

<td><?php echo $task['taak']; ?></td> 
<td><?php echo $task['beschrijving']; ?></td> 
<td><?php echo $task['categorie']; ?></td> 
<td><?php echo $task['prioriteit']; ?></td> 
<td><?php echo $task['datum']; ?> </td>  
+0

再去讀一本書,或者去通過一些教程。對於一次發生的事情,你需要一個循環。沒有一箇中間人可以神奇地知道你想要做什麼。 – TJHeuvel 2012-04-19 09:21:47

+0

這是非常令人困惑的代碼 - 您運行兩次相同的SQL查詢;你第一次沒有做任何事情。那是故意的嗎?其次,以這種方式將你的「檢索任務和在網頁上顯示」代碼與「處理這個事實可能是一個帖子」的任務交織在一起使得代碼很難閱讀,並且很難維護...... – 2012-04-19 09:23:11

回答

6

這樣做:

$task = mysql_fetch_assoc($taskrow);

您正在將$task轉換爲一個對象,其中包含來自您的數據庫查詢中選定行的數據。

所以,你需要遍歷該對象,以便與各行的數據打...

所以嘗試:

while ($task = mysql_fetch_assoc($taskrow)){?> 

<td><?php echo $task['taak'];?></td> 
<td><?php echo $task['beschrijving']; ?> </td> 
<td><?php echo $task['categorie']; ?></td> 
<td><?php echo $task['prioriteit']; ?></td> 
<td><?php echo $task['datum']; ?> </td> 
<? } ?> 
+1

並且最好使用<?php while(...):?> ... <?php endwhile; ?>結合php + html時:-) – 2012-04-19 09:25:30

+0

謝謝!現在工作=) – 2012-04-19 09:28:16

+0

@PietervanAlthuis如果它適合你,請將此答案標爲正確;) – 2012-04-19 09:29:52

0
<?php foreach($task as $key => $value) : ?> 
<td><?php echo $value;?></td> 
<?php endforeach; ?> 
相關問題