Php 为一个循环访问两个不同的表

Php 为一个循环访问两个不同的表,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我有一个小问题,我想不出来 我必须在一个循环中从两个不同的表中提取数据。我以前从来没有这样做过,所以我不知道怎么做。我试过两个不同的问题。看起来是这样的: $query = "SELECT * FROM colors "; $color_select = mysqli_query($connection, $query); $second_query = "SELECT * FROM votes"; $vote_select = mysqli_query($connection, $secon

我有一个小问题,我想不出来

我必须在一个循环中从两个不同的表中提取数据。我以前从来没有这样做过,所以我不知道怎么做。我试过两个不同的问题。看起来是这样的:

$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>";
}

如果表有关系

在单个查询中尝试此操作

SELECT
  `colors`.*,votes.*
FROM
  `colors`
INNER JOIN
  `votes` ON
  `votes`.colorId = `colors`.Id

大多数imp****表之间应该有一些关系

其他解决方法

  • 对颜色运行查询,将其保存在ArrayA中
  • 运行投票查询,将其保存在ArrayB中
  • 创建新阵列ArrayC

    $arrayC=array(); 循环数组A或C,如果它们都接触相同的行计数 array_push($ArrayC,颜色的键和值,投票的键和值)

  • 用于打印tr和td的最终循环阵列

  • 首先将这两个表关联起来,在投票表中写入颜色标识

    $query = "SELECT * FROM colors,votes where colors.id=votes.color_id";
    
    $color_select = mysqli_query($connection, $query);
    
    while($row = mysqli_fetch_assoc($color_select))
    
    {

    }试试这个:

    $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>";
     }
    
    $query=“从颜色中选择颜色”;
    $color\u select=mysqli\u query($connection,$query)或die(mysqli\u error());
    $second_query=“从投票中选择投票”//你只需要专栏投票,对吗?
    $vote_select=mysqli_query($connection,$second_query)或die(mysqli_error());;
    而($row=mysqli\u fetch\u assoc($color\u select)&&&$second\u row=mysqli\u fetch\u assoc($vote\u select)){
    $color[]=$row['colors'];
    $voces[]=$second_row['voces'];
    回显“$color$选票”;
    }
    
    简要说明:
    它将把select和store提取到一个数组中(因为您所做的是将多行选择到一个变量中)然后用回声显示。

    这两个表格是如何关联的?如果
    颜色
    表格与
    投票有关系
    使用join@AbhikChakraborty它们在同一数据库中两个表之间是否有任何关系?我的意思是这两个表之间是否有一个公用键,以便您知道
    投票
    表中哪个投票是对于哪种颜色?好的,但是while循环在这种情况下是如何变化的?您的结果将在单个查询中生成。我不尝试将值存储到变量中。如果是这样的话,你的例子会有所帮助。我只需要回应他们。:)你试过了吗?因为最好将它们都放在后面使用(在本例中为echo)。那它不工作了吗?顺便说一句,它应该显示每列的所有颜色和投票,不管它们是否相关。这可以通过查询tho进行更改。
     $color = $row['Colors'];
     $votes = $row['Votes'];
    
    $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>";
     }