2011-07-17 23 views
0
$qPhysician = mysql_query("SELECT * FROM physicians"); 
$num = mysql_num_rows($qPhysician); 
$i=0; 
while($i < $num) 
{ 
    "<tr>"; 
    "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>"; 
    "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>"; 
    "</tr>"; 
    $i++; 
} 

私は空白の結果になります。PHPのループが機能しない

私が$numをエコーすると、自分のDBの行数である「19」が得られます。 レコードを取得したかどうかをテストするために$rowPhysician['lastName']を返すと、少なくとも1つの姓のレコードが取得されます。 "while"に何か問題があるかどうかはわかりません。私を助けてください。

+0

本当にmysql_fetch_arrayを使用する必要があります。 mysql_num_rowsは一般にはるかに低速です。 – cwallenpoole

+0

@cwallenpoole - 私はそれを代替手段としてどのように実行しますか?ありがとう! –

答えて

4

文字列を印刷するエコーがありませんか?

while($i < $num) { 
    echo "tr"; 
    echo "td" . mysql_result($qPhysician,$i,"lastName") . "/td"; 
    echo "td" . mysql_result($qPhysician,$i,"firstName") . "/td"; 
    echo "/tr"; 
    $i++; 
} 
+0

ああ!私はそのエコーを完全に忘れてしまった!本当にありがとうRHSeeger。今私は自分自身を笑っています:) –

+0

ページをチェックするときにいくつかのエラーはありませんでしたか?ログを見て私の最初のステップは、PHPをデバッグすることです。 –

0

とにかくHTMLをエコーするのは悪い習慣です。より正確な出力は、次のようになります。

... 
while($i < $num) :?> 
    <tr> 
     <td><?php echo mysql_result($qPhysician,$i,"lastName"); ?></td> 
     <td><?php echo mysql_result($qPhysician,$i,"firstName") ?></td> 
    </tr> 
<?php $i++; endwhile; 
... 

閉じるHTMLも間違って書きました。

+0

編集後、問題の終了タグは問題ありません。 – Hnatt

+0

私はこれを試して、エラーの束を取得します。 –

+0

「エラーの束」は間違った記述です。どのようなエラーメッセージが表示されるかを教えてもらえれば助かります。 – Hnatt

0

技術的には、これが答えではないが、コードをこのように表示するように簡単です:

// first, only take the records you need -- each record adds more time to 
// query, so if you only need 2, only select 2. 
$query = mysql_query("SELECT lastName, firstName FROM physicians"); 

// mysql_fetch_assoc returns an associative array of all of the columns 
// mysql_fetch_row returns a numerically indexed array. 
// mysql_fetch_array returns an array with both numeric and string indexing. 
// they will all return FALSE when there are no more results in the query. 
while($arr = mysql_fetch_assoc($query)) 
{ 
    echo "<tr>"; 
    // Now, use array indexing. 
    echo "<td>" . $arr[ "lastName" ] . "</td>"; 
    echo "<td>" . $arr[ "firstName" ] . "</td>"; 
    echo "</tr>"; 
} 

それはmysql_resultが実際より良い選択肢であることは非常にまれな状況である - 通常は良いですPHPでいくつかの配列を作成し、DBで処理するだけです。

関連する問題