gpt4 book ai didi

php - MYSQL 查询,因此如果其他表中没有值,它也会返回值

转载 作者:行者123 更新时间:2023-11-29 12:11:06 25 4
gpt4 key购买 nike

大家好,在下面的代码中您可以看到我的 JSON 返回的内容。

{"lifehacks":[{
"id":"2",
"URLtoImage":"http:\/\/images.visitcanberra.com.au\/images\/canberra_hero_image.jpg",
"title":"dit is nog een test",
"author":"1232123",
"score":"2",
"steps":"fdaddaadadafdaaddadaaddaadaaaaaaaaaaa","category":"Category_2"}]}

JSON 返回的内容很好。唯一的问题是,只有在有一个或多个喜欢的情况下,它才会显示生活窍门。那么我应该对我的查询进行哪些更改,以便它也可以显示生活窍门而不点赞。

//Select the Database
mysql_select_db("admin_nakeitez",$db);

//Replace * in the query with the column names.
$result = mysql_query("select idLifehack, urlToImage, title, Lifehack.Users_fbId, idLifehack, steps, Categorie, count(Lifehack_idLifehack) as likes from Lifehack, Likes where idLifehack = Lifehack_idLifehack AND idLifehack > " . $_GET["id"]. " group by idLifehack;", $db);




//Create an array
$json_response = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['id'] = $row['idLifehack'];
$row_array['URLtoImage'] = $row['urlToImage'];
$row_array['title'] = $row['title'];
$row_array['author'] = $row['Users_fbId'];
$row_array['score'] = $row['likes'];
$row_array['steps'] = $row['steps'];
$row_array['category'] = $row['Categorie'];



//push the values in the array
array_push($json_response,$row_array);
}
echo "{\"lifehacks\":";
echo json_encode($json_response);
echo "}";

//Close the database connection
fclose($db);

我希望我的问题是这样清楚的。提前谢谢您,我自己也搞不懂。

最佳答案

这里需要一个LEFT JOIN。您的查询有一个INNER JOIN

select
idLifehack,
urlToImage,
title,
Lifehack.Users_fbId,
idLifehack,
steps,
Categorie,
count(Lifehack_idLifehack) as likes
from Lifehack
left join Likes on idLifehack = Lifehack_idLifehack
where idLifehack > whatever
group by idLifehack;

对不同的连接类型有很好的解释 here .

还有几点...

<小时/>

在 PHP 中使用准备好的语句。您的代码对 SQL 注入(inject)完全开放,这已经毁掉了职业生涯,并导致数百万无辜者的个人信息被盗。有很多网站展示了如何执行此操作,因此我不会在这里详细介绍,但我会说我最喜欢的是 bobby-tables .

<小时/>

避免查询中的隐式连接反模式。这是隐式连接:

FROM a, b
WHERE a.id = b.id

改用显式连接;它们将连接逻辑与过滤 (WHERE) 逻辑分开:

FROM a
INNER JOIN b ON a.id = b.id

关于php - MYSQL 查询,因此如果其他表中没有值,它也会返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com