私はphp/mysqlの設定で表示されるようにクエリをHTMLテーブルに入れて奇妙な問題を抱えています。クエリは常に表示されるよりも1つ多くの結果を生成します。たとえば、1組の結果が返された場合、表には何も表示されません。 5つがある場合、4つだけが表示されます。私は、クエリに基づいてテーブルを生成するために事前定義された関数を使って同じクエリを試してみました。そして正しい数の結果を持つ正しいテーブルを生成しました。ここでは例として(インデントのための謝罪、またはその欠如)である:htmlテーブルの問題へのPHP/MySQLのクエリ
$user_id = implode($_SESSION['user_id']);
$query = "SELECT name, address
FROM user
WHERE user_id = '$user_id'
ORDER BY date_added DESC";
$result = mysql_query($query) or die ("query failed: " . mysql_error());
echo "<table border='1' style=\"border-collapse: collapse;\">
<tr style=\"background-color: #000066; color: #FFFFFF;\">
<th>Name</th>
<th>Address</th>
</tr>";
$rowCt = 0; // Row counter
while($row = mysql_fetch_array($result))
{
if($rowCt++ % 2 == 0) $Style = "background-color: #00CCCC;";
else $Style = "background-color: #0099CC;";
echo "<tr style=\"$Style\">";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "</tr>";
}
echo "</table>";
なぜこれが起こっているすべてのアイデア?どんな助けでも大いに感謝されるでしょう、私は夢中になってきて、私が上に行く前にそれを理解する必要があります!ありがとう。
EDIT
その番号が正しいこと、および表が正しいサイズである、しかし最後の結果は常に空であるように私は、行の量をループにわずかに変更されました。何か案は?
$rowCt = 0; // Row counter
$i = 0;
echo mysql_num_rows($result). ' number of rows';
$num = mysql_num_rows($result);
//while($row = mysql_fetch_array($result))
while ($i < $num)
{
$row = mysql_fetch_array($result);
if($rowCt++ % 2 == 0) $Style = "background-color: #00CCCC;";
else $Style = "background-color: #0099CC;";
echo "<tr style=\"$Style\">";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "</tr>";
$i++;
}
echo "</table>";
おかげ
echo mysql_num_rows($ result);期待する行数を返すようにしてください。 – Tom
'implode($ _ SESSION [' user_id '])'で何をしようとしていますか? – mshsayem
あなたのコードに間違いはありません。あなただけでは、あなたはifとelseを持っていて、コメントアウトして何が起こっているか見てみると、予期せぬことが起こる可能性があります。また、phpmyadmin(インストールされている場合)で直接$クエリを実行し、返されたデータセットを確認して返されたデータを確認することをお勧めします。 – ArendE