UNION DISTINCT 查询 PHP MySQL 结果空白

问题描述 投票:0回答:1

下面的查询在 phpMyAdmin 中运行良好并显示正确的结果。然而,当在 php 页面上实现时,它什么也不显示(空白页面)。有人可以帮我在 echo 中显示这些结果吗?

<?php
$servername = "localhost";
$username = "test";
$password = "****";
$dbname = "test";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "(SELECT 
    `sw_category1` as `temp` 
FROM `products` WHERE sw_category1 = 'Home and Kitchen' OR sw_category2 = 'Home and Kitchen'     OR sw_category3 = 'Home and Kitchen' OR sw_category4 = 'Home and Kitchen'
GROUP BY `sw_category1`) 

UNION DISTINCT 
(SELECT 
`sw_category2` as `temp` 
FROM `products` WHERE sw_category1 = 'Home and Kitchen' OR sw_category2 = 'Home and Kitchen'     OR sw_category3 = 'Home and Kitchen' OR sw_category4 = 'Home and Kitchen'
GROUP BY `sw_category2`)

UNION DISTINCT 
(SELECT 
`sw_category3` as `temp` 
FROM `products`  WHERE sw_category1 = 'Home and Kitchen' OR sw_category2 = 'Home and Kitchen'     OR sw_category3 = 'Home and Kitchen' OR sw_category4 = 'Home and Kitchen'
GROUP BY `sw_category3`)

UNION DISTINCT 
(SELECT 
`sw_category4` as `temp` 
FROM `products`  WHERE sw_category1 = 'Home and Kitchen' OR sw_category2 = 'Home and Kitchen'     OR sw_category3 = 'Home and Kitchen' OR sw_category4 = 'Home and Kitchen'
GROUP BY `sw_category4`)";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "" . $row["sw_category1"]. " " . $row["sw_category2"]. " " . $row["sw_category3"]. " " .     $row["sw_category4"]. "";
  }
} else {
  echo "0 results";
}
$conn->close();
?>
php mysql echo union distinct
1个回答
0
投票

您的查询不会返回名为

sw_category1
sw_category2
等的四列。

它返回一列,名为

temp

当我在MySQL客户端查询时:

+------------------+
| temp             |
+------------------+
| Home and Kitchen |
| NULL             |
+------------------+

当我测试你的 PHP 代码时:

PHP Warning:  Undefined array key "sw_category1" in p.php on line 39

Warning: Undefined array key "sw_category1" in p.php on line 39
PHP Warning:  Undefined array key "sw_category2" in p.php on line 39

Warning: Undefined array key "sw_category2" in p.php on line 39
PHP Warning:  Undefined array key "sw_category3" in p.php on line 39

Warning: Undefined array key "sw_category3" in p.php on line 39
PHP Warning:  Undefined array key "sw_category4" in p.php on line 39

Warning: Undefined array key "sw_category4" in p.php on line 39
PHP Warning:  Undefined array key "sw_category1" in p.php on line 39

Warning: Undefined array key "sw_category1" in p.php on line 39
PHP Warning:  Undefined array key "sw_category2" in p.php on line 39

Warning: Undefined array key "sw_category2" in p.php on line 39
PHP Warning:  Undefined array key "sw_category3" in p.php on line 39

Warning: Undefined array key "sw_category3" in p.php on line 39
PHP Warning:  Undefined array key "sw_category4" in p.php on line 39

Warning: Undefined array key "sw_category4" in p.php on line 39
   

这表明 PHP 在找不到

$row["sw_category1"]
和其他元素的关联数组条目时感到困惑。它确实处理了两行的结果集,并对这两行结果集的每一行上的每个失败的数组访问发出警告。

当你学习PHP时,你应该养成在开发代码时观察PHP错误日志的习惯。这是输出错误和警告的地方,它们提供了有关代码中问题的重要线索。当我使用 PHP(或输出到同一错误日志的其他 Web 语言)进行开发时,我会持续打开一个窗口来跟踪日志。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.