内部結合を使用して2つのテーブルからid、catid、name、subofを取得するSQLクエリを実行しています。
select shop.id, shop.catid, shop.name, shop_cat.catname, shop_cat.subof from shop inner join shop_cat on shop.catid = shop_cat.id where shop.active='1' order by shop_cat.catname, shop.name
これで必要なすべての結果が得られましたが、結果をループして、subof 値 (値であり、値は shop_cat の ID 番号) に対して別の SQL クエリを実行する必要があります。subof 値の catname # を取得し、結果/配列フィールド subof を猫の名前に更新する必要があります。
したがって、元のクエリで subof の値が 15 になった場合、shop.cat から catname を選択します。ここで、id='15' はそのクエリから catname を取得し、元の値ごとに subof = catname を更新します。 subof 値を持つ結果。
EDIT 3/23/13 12:30pm MST: Opeyemi が書いたコードをもっと使って、私が必要なものをもっと説明します。他にどのように説明すればよいかわかりません...
$q = "select shop.id, shop.catid, shop.name, shop_cat.catname, shop_cat.subof from shop inner join shop_cat on shop.catid = shop_cat.id where shop.active='1' order by shop_cat.catname, shop.name";
$r = mysql_query();
while(list($shopid, $catid, $name, $catname, $subof) = mysql_fetch_array($r)) {
$getname = mysql_query("select catname from shop_cat where id='$subof'");
$rowname = mysql_fetch_assoc($getname);
//code to update array to change value of $subof to new $rowname['catname']
}
DB クエリが実行され、値が取得されます。
次に、PHP がクエリから取得したすべての結果をループする何らかのループを実行する必要があります。このループは subof 値 (整数の ID 番号) を取得し、クエリを実行してその整数値の値 catname を取得します。次に、ループは現在の結果を更新し、subof 値を整数からループ内の DB から取得した catname に変更します。
いつでもデータベースを更新する必要はありません。最初のクエリから結果/配列を更新する必要があります。