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 附加到一个结果集中,然后我可以使用标准的 while 循环进行迭代,但是,我非常有限的 PHP 技能让我不知所措地获取代码来做到这一点。

任何人都可以提供有关我将如何将所有结果附加到给定while循环中的一组中的任何见解吗?

谢谢!

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

您可以尝试使用 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>

请注意,如果您使用 foreaches,您可以只获取整个表,而不是使用查询来选择几列。然后通过 foreach 输出列数据(使用 $output->columnname 命令)

于 2012-10-14T00:30:23.837 回答