0

PHP を使用して、MySQL クエリの結果セットの行ごとに、別の MySQL クエリを実行する必要があります。これまでのところ、私は持っています

$result = mysql_query("SELECT id, state FROM states WHERE region='given_region'")
or die(mysql_error());

while($row = mysql_fetch_row($result))
{
    $state = $row['state'];
    $r = mysql_query("SELECT * FROM locations WHERE state REGEXP '(^|,)".$state."($|,)'");
}

ここで、すべての結果 $r を 1 つの結果セットに追加して、標準の while ループで反復できるようにする必要がありますが、PHP のスキルが非常に限られているため、それを行うためのコードを取得するのに途方に暮れています。

指定されたwhileループ内ですべての結果を1つのセットに追加する方法について、誰かが洞察を提供できますか?

ありがとう!

4

2 に答える 2

4

SQL 結合について学習します。

SELECT states.id, states.state, locations.*
FROM   states LEFT JOIN locations USING(state)
WHERE  states.region = 'given_region'
于 2012-10-14T00:25:00.197 に答える
0

while の代わりに foreach を試してみてください。申し訳ありませんが、私は本当に質問を受け取っていません。

foreach を使用すると、必要に応じてテーブル全体を生成できます。例を挙げましょう:

<?php
Foreach($result as $output) : ?>
<div id="results">
<table id="generated table">
<tr>
<td><?php echo $output->id ?></td><td> <?php echo $output->state ?></td>
</tr>
</table>
<?php endforeach ?>
 </div>

foreach を使用すると、クエリを使用していくつかの列を選択する代わりに、テーブル全体を取得できます。次に、foreach を介して ($output->columnname コマンドを使用して) 列データを出力します。

于 2012-10-14T00:30:23.837 に答える