所以我想从我的数据库中的表中选择数据,并希望在其他选择查询中使用该数据,我尝试但我的上一个查询变为空,那么我错了什么?
$query = "SELECT * FROM `DBovervieuw` WHERE owner =" . $owner;
$result_set = mysqli_query($connection, $query);
while($result = mysqli_fetch_array($result_set)) {
$stmt = "SELECT * FROM `card` WHERE DBid=" . $result['ID'];
$Finale_set = mysqli_query($connection, $Finale_set);
while($row = mysqli_fetch_ASSOC($Finale_set)) {
$data[] = $row;
}
}
echo json_encode($data);
我稍后会做我的BIND变量
答案 0 :(得分:2)
嗨,你遗漏的主要内容是第二个WHERE
(更新......实际上都是查询)
$query = "SELECT * FROM `DBovervieuw` WHERE " . $owner;
$stmt = "SELECT * FROM `card` WHERE " . $result['ID'];
您没有列名。那么在哪里?
$query = "SELECT * FROM `DBovervieuw` WHERE {insert column name here } = " . $owner;
如果$owner
是一个值为1的id,那么您有这个查询..
$query = "SELECT * FROM `DBovervieuw` WHERE 1"
这将只返回表格中的所有记录。
那里说一个简单的连接可能更适合这里,然后是2个查询
$query = "SELECT
d.*, c.*
FROM
`DBovervieuw` AS d
JOIN
card AS c
ON
d.ID = c.DBid
WHERE d.owner = " . $owner;
在不知道我能做的最好的那些列名称的情况下...基本上不是第二次使用该关系作为联接中的ON
。然后你可以为DB保存一堆查询调用,它可以使代码更简单,更简单,因为你手头有所有数据,并且可以避免第二个(嵌套)while循环。
<强>更新强> 这也是一个问题。
$stmt = "SELECT * FROM `card` WHERE DBid=" . $result['ID'];
$Finale_set = mysqli_query($connection, $Finale_set);
我想你想要这个:
$stmt = "SELECT * FROM `card` WHERE DBid=" . $result['ID'];
$Finale_set = mysqli_query($connection, $stmt); //<-----
顺便说一下,负责空查询错误,因为在定义它之前使用了$Finale_set
。哪个是NULL
作为您的SQL,从而为您提供空查询错误。虽然这是一个错误的变量,所以我们只使用正确的变量而不是定义它。
干杯。
作为旁注,$stmt
变量通常在使用PDO
时使用,它代表PDOstatement
http://php.net/manual/en/class.pdostatement.php所以按惯例,我会简单地将其更改为{{1} }。但这只是一种最佳实践。
答案 1 :(得分:0)
我认为你在一两行中有一定的拼写错误:
这里
$query = "SELECT * FROM DBovervieuw' WHERE " . $owner;
在这里
$stmt = "SELECT * FROM 'card' WHERE " . $result['ID'];
尝试这样的事情:
<强> EDITED 强>
$query = "SELECT * FROM DBovervieuw WHERE owner='".$owner."'";
$result_set = mysqli_query($connection, $query);
while($result = mysqli_fetch_array($result_set)) {
$stmt = "SELECT * FROM `card` WHERE DBid=" . $result['ID'];
$Finale_set = mysqli_query($connection, $stmt);
while($row = mysqli_fetch_ASSOC($Finale_set)) {
$data[] = $row;
}
}
echo json_encode($data);
请注意Owner_id
&amp; Card_id
。这两个是您要搜索的相应表格的列名称。您必须使用真实的列名更改这两个列。