2012-04-19 12 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

Goは本を読む、または一部を経ますチュートリアル。もっと何かが起こるには、どこかにループが必要です。インターパターは、あなたがしたいことを魔法のように知ることはできません。 – TJHeuvel

+0

これはかなり混乱しているコードです - 同じSQLクエリを2回実行します。初めて実際には何もしません。それは意図的なのでしょうか?第2に、「仕事を検索してウェブページに表示する」コードを「この事実はポストであるかもしれないということを処理する」という方法でインタリーブすると、コードを読みにくくして、維持するのが難しくなります... –

答えて

6

(これは私の全体のスクリプトではありません):

$task = mysql_fetch_assoc($taskrow)を。

$taskは、DBクエリで選択された行のデータを含むオブジェクトに変換されます。

だから、あなたは

そうしてみてください...各列のデータを再生するためには、そのオブジェクトをループする必要があります。

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を組み合わせると:-) –

+0

ありがとう!現在は=) –

+0

@PietervanAlthuisあなたのために働いた場合、この回答に正しいとマークしてください;) –

0
<?php foreach($task as $key => $value) : ?> 
<td><?php echo $value;?></td> 
<?php endforeach; ?> 
関連する問題