1

データベースのレコードを表示する非常に基本的で単純なスクリプトがあります。問題: すべてのレコードが表示されません。最も単純な mysql ($sql="SELECT * FROM $tbl_name";) でも試してみましたが、まだ一部のレコードが欠落しています (ほとんどの場合、表示されていないリストの最初のレコードです)。

だからここに私のコードがあります(それはすべて1ページにあります):

<?php
$host="localhost";
$username="***";
$password="***";
$db_name="***";
$tbl_name="***";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name WHERE rowNameOne >= 0.01 AND rowNameTwo='2013'";

if ($_GET['sort'] == 'one')
{
    $sql .= " ORDER BY one ASC";
}
elseif ($_GET['sort'] == 'two')
{
    $sql .= " ORDER BY two ASC";
}
elseif ($_GET['sort'] == 'three')
{
    $sql .= " ORDER BY three ASC";
}
elseif($_GET['sort'] == 'four')
{
    $sql .= " ORDER BY four ASC";
}
elseif($_GET['sort'] == 'five')
{
    $sql .= " ORDER BY five ASC";
}

$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>

<body onload="parent.alertsize(document.body.scrollHeight);"> 
<br />
<table cellspacing="0" cellpadding="0" align="center">
<tr>
<td valign="top" colspan="5">
<font>Titel</font>
</td>
<tr>
<td><a href="pageName.php?sort=one">Titel one</a></td>
<td><a href="pageName.php?sort=two">Titel two</a></td>
<td><a href="pageName.php?sort=three">Titel three</a></td>
<td><a href="pageName.php?sort=four">Titel four</a></td>
<td><a href="pageName.php?sort=five">Titel five</a></td>
</tr>
<tr>
<td colspan="5" class="noBorder">

<?php
while($rows=mysql_fetch_array($result)){
?>

<a href="pageName.php?id=<? echo $rows['id']; ?>" >
<table width="100%">
<tr>
<td><? echo $rows['rowNameOne']; ?></td>
<td><? echo $rows['rowNameTwo']; ?></td>
<td><? echo $rows['rowNameThree']; ?></td>
<td><? echo $rows['rowNameFour']; ?></td>
<td><? echo $rows['rowNameFive']; ?></td>
</tr>
</table>
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
<?php
}
?>
</a>

</td>
</tr>
</table>

これは非常に基本的なコードであり、簡単に言えますが、それでもレコードが欠落しており、データベース内のすべてが表示されていません。私は何を間違っていますか?

助けてくれてありがとう!

4

1 に答える 1

2

ループを開始する前に、次のことを行います。

$rows=mysql_fetch_array($result);

その場合、ループ条件は次のとおりです。

while($rows=mysql_fetch_array($result)){

したがって、最初の結果は表示されません。最初のステートメントとループの間でその結果を使用していないため、最初のステートメントを削除することをお勧めします。

関連する注意事項として、PDOまたはmysqliへの移行を検討してください。

于 2013-03-22T11:56:10.800 に答える