这是我第一次使用内连接,所以我很困惑。
我有两张桌子。
这是我的第一个名为members
的表这是我的另一张名为捐款的表格。成员中的userID与捐赠表上的userID相关联。
是的,所以我要做的就是从成员和捐款表中选择所有数据,并用捐赠金额来协调每个Id。因此,如果有意义的话,我想要做的就是回复所有捐赠金额旁边的名字。
这是我目前的代码
$ connect - 包含我的配置
//Connection info.
global $connect;
//inner join
$sql = "SELECT members.firstname, members.lastname
FROM members INNER JOIN donations ON members.userID = donations.userID WHERE donations.amount !='' ORDER BY members.userID ASC ";
$result = mysqli_query( $connect, $sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$list .= $row["firstname"];
echo $list;
}
我收到此错误:mysqli_fetch_array()期望参数1为mysqli_result boolean
更新:感谢您的所有帮助,我正在运行SQL查询,只是获取名字和姓氏。
SELECT members.firstname, members.lastname FROM members INNER JOIN donations ON members.userID = donations.userID WHERE donations.amount !='' ORDER BY members.userID ASC
我想我在这里做错了什么!=''捐赠金额是十进制的,我的目标是正确的吗?
答案 0 :(得分:1)
您在列名称中输入了拼写错误' fisrname' => '姓名&#39 ;. 首先在phpmyadmin或其他工具中检查查询。 另请阅读有关mysqli_error以及稍后访问数据库的其他方法(如PDO,Doctrine等)。
答案 1 :(得分:0)
在查询中将members.id
替换为members.userID
。
SELECT members.firstname, members.lastname, donations.amount
FROM members
INNER JOIN donations ON members.userID = donations.userID
WHERE donations.amount != ''
ORDER BY members.userID ASC
至于SQL错误,因为当查询出现问题或找不到结果时$ result为false
。
mysqli_fetch_array()期望参数1为mysqli_result boolean
为了防止错误,请添加一个简单的if case,因为你的。
if($result){
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$list .= $row["firstname"];
echo $list;
}
}