我有一个小问题,我无法弄清楚。
我必须在一个循环中从两个不同的表中提取数据。我之前从未这样做过,所以我不知道怎么做。我尝试了两个不同的查询。看起来像这样:
$query = "SELECT * FROM colors ";
$color_select = mysqli_query($connection, $query);
$second_query = "SELECT * FROM votes";
$vote_select = mysqli_query($connection, $second_query);
然后将它们放入循环中:
while($row = mysqli_fetch_assoc($color_select) && $second_row = mysqli_fetch_assoc($vote_select))
{
$color = $row['Colors'];
$votes = $second_row['Votes'];
echo "<tr><td>$color</td><td>$votes</td></tr>";
}
但那并没有奏效。我没想到它,只想尝试一下。 :)也许有经验的人可以帮助我。谢谢。
在一天结束时,我需要一个显示的表,它有两列,其中一列包含一个数据库表中的颜色名称,另一列包含多个投票。
根据要求:表格结构。
表:颜色只有一个字段颜色。
表:投票有四个字段 city_id ,城市,颜色和投票
******** EDIT ********************* ***************** 因此按照建议修复了查询,但仍然没有显示任何内容。
以下是编辑过的代码:
$query = "SELECT * FROM colors,votes WHERE colors.Colors=votes.Colors";
$color_votes_select = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($color_votes_select))
{ $color = $row['Colors'];
$votes = $row['Votes']; }
答案 0 :(得分:1)
如果表有关系。
在单个查询中尝试此操作。
SELECT
`colors`.*,votes.*
FROM
`colors`
INNER JOIN
`votes` ON
`votes`.colorId = `colors`.Id
答案 1 :(得分:0)
大多数imp *****你应该在表之间建立一些关系
否则解决方法
创建新阵列ArrayC
$ arrayC = array(); 如果它们都接触相同的行计数,则循环数组A或C. array_push($ ArrayC,键和颜色值,键和值的值);
答案 2 :(得分:0)
First Relate这两个表,在投票表中写出color_id。
$query = "SELECT * FROM colors,votes where colors.id=votes.color_id";
$color_select = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($color_select))
{
$color = $row['Colors'];
$votes = $row['Votes'];
}
答案 3 :(得分:0)
试试这个:
$query = "SELECT colors FROM colors";
$color_select = mysqli_query($connection, $query) or die (mysqli_error());
$second_query = "SELECT votes FROM votes"; //you only need column votes right?
$vote_select = mysqli_query($connection, $second_query) or die (mysqli_error());;
while( $row = mysqli_fetch_assoc($color_select) && $second_row = mysqli_fetch_assoc($vote_select)){
$color[] = $row['colors'];
$votes[] = $second_row['votes'];
echo "<tr><td>$color</td><td>$votes</td></tr>";
}
简短说明: 它将获取select并存储到一个数组中(因为你正在做的是在一个变量中选择多行),然后只显示echo。