クラシファイド Web サイトでこれを正しく機能させるのに問題がありますが、基本的には、Item テーブル LIMIT 40 からすべてを取得してページに表示しています。難しい部分として、カテゴリの名前を含むカテゴリ テーブルからすべてを取得しています (各カテゴリ名には相対 ID があります)。IDがアイテムのIDと等しい場合、カテゴリの名前を出力する必要があります。うまくいけば、コードは明確にするのに役立ちます:
$sql = mysql_query("SELECT * FROM table_item ORDER BY creationtime DESC LIMIT 40");
$sql2 = mysql_query("SELECT * FROM table_category");
$ad_count = mysql_num_rows($sql);
$row2 = mysql_fetch_array($sql2);
if($ad_count > 0){
while($row = mysql_fetch_array($sql)){
$item_categoryId = $row["cid"];
$categoryId = $row2["id"];
$categoryName = $row2["name"];
while($item_categoryId == $categoryId){
$catName = $categoryName;
}
echo $catName;
}
}
さて、私が提示したものよりもコードにもう少しあります。私はこれを短くて甘くしようとしました. カテゴリ名をエコーする代わりに、実際には HTML テーブルの行に入れられ、さらに多くの情報も入れられます。カテゴリ名を何もしなくてもすべて問題なく動作しますが、アクセスして比較するために何かを構築しようとすると、すべてがうまくいきません。
また、このネストされた while ループは、これを行うための最良の方法のように思われ (私は多くの方法を試しました)、これに対して得られるエラーは、「予期しない '}' があります」ということです。