使用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附加到一个结果集中,然后我可以使用标准的while循环进行迭代,但是,我非常有限的PHP技能让我无法获得代码来执行此操作。
任何人都可以提供任何有关我如何将所有结果附加到给定while循环中的一组中的信息吗?
谢谢!
答案 0 :(得分:4)
了解SQL joins:
SELECT states.id, states.state, locations.*
FROM states LEFT JOIN locations USING(state)
WHERE states.region = 'given_region'
答案 1 :(得分:0)
您可以尝试使用foreach而不是while。对不起,我不是真的得到了这个问题。
如果您使用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-&gt; columnname命令)