1

データベースから多数の列を取得するクエリがあります

$searchResults = mysql_query("SELECT customerRefId, seekingAddressSuburb, 
  seekingAddressPostcode, seekingAddressState FROM customer_seeking");

次に、データを使用して HTML テーブルを表示します

?>
<table border="1">
<th>Customer Ref ID</th>
<th>Suburb</th>
<th>State</th>
<th>Postcode</th>
<?php
while($row=mysql_fetch_array($searchResults))
{
echo"<tr><td>$row[customerRefId]</td><td>$row[seekingAddressSuburb]</td><td>$row[seekingAddressPostcode]</td><td>$row[seekingAddressState]</td></tr>";
}
?>
</table>

次に行う必要があるのは、以下のように別のクエリを9,10作成することですが、ハードコーディングの代わりに$row[customerRefId]IN ()

SQL の結果の先頭に戻るために使用mysql_data_seek($searchResults,0);する必要がありますか、それとも配列を作成する必要がありますか?

$searchResults2 = mysql_query("SELECT customerRefId, firstName, lastName, email, phone, mobile FROM customer_contact WHERE customerRefId IN (9,10)");
4

1 に答える 1

1

まず、誰もがコメントで言っているように、mysql_* 関数は非推奨であり、mysqli に切り替える必要があります。

問題を解決するには、JOIN. を使用するJOINと、両方のテーブルを組み合わせてデータを取得できます。次に例を示します。

SELECT 
    customerRefId,
    seekingAddressSuburb, 
    seekingAddressPostcode, 
    seekingAddressState,
    firstName,
    lastName,
    email,
    phone,
    mobile
FROM 
    customer_seeking cs
LEFT JOIN
    customer_contact cc ON cc.customerRefId = cs.customerRefId

行をループするたびに、一度にすべてのデータが得られます!

于 2013-06-09T04:30:07.030 に答える