【问题标题】:Select rows from two tables to json array从两个表中选择行到 json 数组
【发布时间】:2017-11-19 00:42:51
【问题描述】:

我是一个初学者开发人员,我很难理解它的制作方式。 请帮帮我。

猫本

+----+---------+------------+
| id | cat_num | count_book |
+----+---------+------------+
|  1 |   55555 |         21 |
|  2 |   77777 |         40 |
+----+---------+------------+

用户手册

+----+-----------+--------------+------------+
| id | user_name | cat_userbook | read_count |
+----+-----------+--------------+------------+
|  1 | Andy      |        55555 |          3 |
|  2 | Andy      |        77777 |          5 |
|  3 | Tom       |        55555 |          4 |
|  4 | Tom       |        77777 |          8 |
+----+-----------+--------------+------------+

代码

<?php
require_once("config.php");

$user_name = "Andy";

$sql ="SELECT cat_userbook, read_count, count_book FROM userbook, catbook WHERE user_name LIKE '" . $user_name . "'";
$result = mysqli_query($db_connect, $sql);
$response = array();

while ($row = mysqli_fetch_assoc($result)) {

    $response[] = $row;
}
echo json_encode($response);
mysqli_close($db_connect);

结果:

[
 {"cat_userbook":"55555","read_count":"3","count_book":"21"},
 {"cat_userbook":"55555","read_count":"3","count_book":"40"},
 {"cat_userbook":"77777","read_count":"5","count_book":"21"},
 {"cat_userbook":"77777","read_count":"5","count_book":"40"}
]

但我想要这个结果,因为这对我来说是必要的:

[
 {"cat_userbook":"55555","read_count":"3","count_book":"21"},
 {"cat_userbook":"77777","read_count":"5","count_book":"40"}
]

【问题讨论】:

  • 您需要告诉数据库服务器只返回cat_num = cat_userbook 所在的行。了解JOINS

标签: php sql json mysqli row


【解决方案1】:

如果你是这样加入的:userbook, catbook 你得到用户手册 x catbook

我认为您正在寻找的是:

SELECT cat_userbook, read_count, count_book FROM userbook LEFT JOIN catbook ON catbook.catNum = userbook.cat_userbook WHERE user_name LIKE '" . $user_name . "'";

【讨论】:

  • 你这么快就被击退了。这对我来说是一个可行的解决方案。非常感谢
  • 2 个连接表的 to json 数组在哪里?
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
  • 2021-12-14
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
相关资源
最近更新 更多