0

Webサイトでページ付けを機能させようとしています。すべてが機能しているはずですが、これには1つの製品しか表示されませんが、8つの製品である必要があります。誰かが何が悪いのか知っていますか?前もって感謝します。

else {
$query = "SELECT COUNT(*) FROM products";
$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_fetch_row($result);
$pages = new Paginator;  
$pages->items_total = $num_rows[0];  
$pages->mid_range = 9;  
$pages->paginate();  

$query = "SELECT serial, name, description, price, picture FROM products WHERE serial != '' ORDER BY serial ASC $pages->limit";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($result);
{
echo '<div style="margin-bottom:10px;display:inline-block;background-color:#E3E3E3;width:190px;height:200px;"><a href="'.$_SERVER['PHP_SELF'].'?serial='.$row[0].'"><img style="padding-top:10px;padding-left:25px;width:150px;height:150px;" src="'.htmlspecialchars($row[4]).'"></a><br><div align="center"><b>'.htmlspecialchars($row[1]).'</b><br><h6>&euro;'.htmlspecialchars($row[3]).'</h6></div></div>';
};
echo '&nbsp;';
echo '<br><br><div style="margin-left:330px;">';
echo $pages->display_pages();
echo '</div>';
}
?>      
4

4 に答える 4

3

mysql_fetch_row()一度に1行のみをフェッチします。次のように、すべての行を表示するには、これを繰り返し呼び出す必要があります。

while ($row = mysql_fetch_row($result)) {
    // handle single row
}

mysql_fetch_array()代わりに使用を検討することをお勧めします。そうすれば、列の順序に依存する必要がなくなり、コードが読みやすく $row[0]なります$row["serial"]

@Kushがリンクしている記事を読んでみてください。PHP固有の説明については、ここを参照してください。

于 2012-07-24T09:46:48.483 に答える
1

mysql_fetch_row()を適切に使用していないようです


次のコードは、$ page-> limitがサニタイズされていないように見えるため、 SQLインジェクションに対して脆弱です。

$query = "SELECT serial, name, description, price, picture FROM products WHERE serial != '' ORDER BY serial ASC $pages->limit";

非推奨になっているため、mysql_*関数の使用を停止します。代わりにPHPデータベースオブジェクト(PDO)を使用してください。これは、PDOがパラメーターバインディングを許可し、SQLインジェクションからユーザーを保護するためです。

ここでPDOの使用について読むことができます

于 2012-07-24T09:50:02.793 に答える
0

この線のため

$row = mysql_fetch_row($result);

する必要があります

while($row = mysql_fetch_row($result)){...
于 2012-07-24T09:46:48.890 に答える
0

行を変更します

$row = mysql_fetch_row($result); 

while ($row = mysql_fetch_row($result))
于 2012-07-24T09:47:39.957 に答える