php - 将两个查询的值匹配到同一个表中

标签 php html mysql mysqli html-table

我正在尝试向 PHP 上的编码值添加描述。代码是从一个表中提取的,描述是从另一个表中提取的。我们的想法是,它们显示在表格上,并为每个代码提供正确的描述,但是当我尝试添加原始有序查询时,描述放错了位置,所以我尝试了以下方法:

 <table>
 for($i=0; $i < $items; $i++)
 {
     $row = $results -> fetch_array();
     echo '<tr>';
     echo '<td>'.$row['code'].'</td>';
     for($j=0; $j<$items2; $j++) 
     {
         $row2 = $result2 -> fetch_array();
         if ($row['code'] == $row2['code']) 
         {
             echo '<td>'.$row2['description'].'</td>';
         }
     }
     echo '</tr>';
 }
 echo '</table>';

它适用于第一个值,但仅适用于第一个值,该列的其余部分为空。

最佳答案

我认为您的问题是,您必须重置 $result2 的行指针。

 <table>
 for($i=0; $i < $items; $i++)
 {
     $row = $results -> fetch_array();
     echo '<tr>';
     echo '<td>'.$row['code'].'</td>';
     for($j=0; $j<items2; $j++) 
     {
         $result2 -> data_seek( 0 );
         $row2 = $result2 -> fetch_array();
         if ($row['code'] == $row2['code']) 
         {
             echo '<td>'.$row2['code'].'</td>';
         }
     }
     echo '</tr>';
 }
 echo '</table>';

每次调用fetch_array时,内部行指针都会加一。因此,在外部 for 循环的第二个循环中,$result2 -> fetch_array() 将返回 NULL,因为没有剩余结果。

或者,您可以在第一个循环之前迭代 $result2 并将结果存储在二维数组中。但是:我更愿意使用 JOIN 将两个语句放在一起,这样您只会得到一个结果集。但提供的信息太少,无法确定在这种情况下是否可行。

MySQL JOIN Syntax

关于php - 将两个查询的值匹配到同一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41208597/

相关文章:

html - 如何删除 Wordpress 标题和内容之间的 p 标签中的空格?

html - 如何从内容中的悬停效果中获取边框

html - 如何在联系表 7 中输入后自动添加美元

PHP 显示表中的交替记录

mysql - goroutine 中的数据库调用失败而没有错误

php - 在 mysql 数据库中插入一个空行

php - 检查字符串是否 x% 相等

javascript - 如果数据为空,Ajax加载不会停止

php - 将最新的 MaxMind GeoLite2 数据库导入 MySQL

PHP,检查 My-Sql 数据中的值