首页 > 解决方案 > 在 mysqli WHERE LIKE 语句中使用 $var

问题描述

我正在尝试获取某个地区的项目列表。

我想要区域名称作为标题然后该区域中的所有项目在下表中,即

标题 - Region1

表 - Region1 项目

标题 - Region2

表 - Region2 项目

标题 - Region3

表 - Region3 项目

标题 - Region4

表 - Region4 项目

我可以输出:

标题

标题

标题

如果我使用 LIKE 'Actual Region Name',我可以在表格中输出区域详细信息

我想使用 LIKE $region 输出,因此我不需要为每个“实际区域名称”编写新语句。

2 SELECT 查询:

$region = mysqli_query($conn,"SELECT DISTINCT region FROM country") or die($conn->error);
$result = mysqli_query($conn,"SELECT * FROM country WHERE region LIKE '$region'") or die($conn->error);

输出 1

这将每个区域输出为

地区名称

$i = 0;
while($row = $region->fetch_assoc())
{
 if ($i == 0) {
 foreach ($row as $value) {
 echo "<p>" . $value . "</p>";
                      }

             }
}

输出 2

这将输出所有区域数据并将其放入表中。

echo "This is table Build";
echo "<table border='1'>";

$i = 0;
while($row = $result->fetch_assoc())
{
    if ($i == 0) {
      $i++;
      echo "<tr>";
      foreach ($row as $key => $value) {
        echo "<th>" . $key . "</th>";
      }
      echo "</tr>";
    }
    echo "<tr>";
    foreach ($row as $value) {
      echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

mysqli_close($conn);

?>

OUTPUT 1 和 OUTPUT 2 都单独工作。我不能让他们一起工作

标签: phpmysql

解决方案


您可以从查询中获取所有region名称,然后将其传递给您next query并打印record与该查询相关的所有信息,即:

<?php

$region = mysqli_query($conn,"SELECT DISTINCT region FROM country") or die($conn->error);

if($region->num_rows > 0) 
    {                               {
       while($row = $region->fetch_assoc())
         {
         //printing region name
         echo "<p>" . $row['region'] . "</p>";
         //only those row will be retrieve which belong to current region name 
         $result = mysqli_query($conn,"SELECT * FROM country WHERE region LIKE '$row['region']'") or die($conn->error);
//printing table 
      echo "This is table Build";
      echo "<table border='1'>"; 
              $i = 0;
    while($row1 = $result->fetch_assoc())
    {
        if ($i == 0) {
          $i++;
          echo "<tr>";
          foreach ($row1 as $key => $value) {
            echo "<th>" . $key . "</th>";
          }
          echo "</tr>";
        }
        echo "<tr>";
        foreach ($row1 as $value) {
          echo "<td>" . $value . "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
             }

}
  mysqli_close($conn);

        ?>

推荐阅读