gpt4 book ai didi

php - 使用 Php 从 MYSQL 数据库中提取注释导致意外的 JSON 结果

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

我正在使用 PHP 脚本从我的数据库中提取评论以填充应用程序。数据库是如何设置的,任何次要评论,即对评论的回复,都会有一个reply_id。我看到的问题是所有评论,无论回复如何,都看到与拥有它的评论相同的回复。我尝试删除其中包含辅助注释的数组,但无济于事。有人可以指出我未能将值分开的地方吗?

// Create connection
$conn = mysqli_connect($servername, $username, $password,$db);

// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);

$memory_id=$_POST['memory_id'];
$query ="Select * FROM comment WHERE memory_id= '$memory_id' and reply_id=''";
$dbquery = mysqli_query($conn,$query);
$query2= "Select * FROM comment WHERE memory_id='$memory_id' and reply_id='$comment_id'";
if($dbquery){
$result = array();
while($row = mysqli_fetch_array($dbquery))
{
$temp_array= array();
unset($temp_array['replys']);
$temp_array['user_id']=$row['user_id'];
$temp_array['comment_id']=$row['comment_id'];
$temp_array['text']=$row['comment'];
$comment_id= $row['comment_id'];
$temp_array['replys']=array();
$dbquery2 = mysqli_query($conn,$query2);
if($dbquery2){
while ($row2 = mysqli_fetch_array($dbquery2)){
$temp_array['replys'][]=array(
'user_id'=>$row2['user_id'],
'comment_id'=>$row2['comment_id'],
'text'=>$row2['comment']);
}//Feeds comments
array_push($result, $temp_array);
}
}//pulls initial command
echo json_encode($result);
}
else
{
$response["error"] = TRUE;
$response["error_msg"] = "No memory FOund";
echo json_encode($response);
}

?>

最佳答案

第二个查询正在使用 $memory_id 执行,其值为 $_POST['memory_id']。一个简单的解决方案是将 $query2 行移动到 $memory_id = $row['memory_id'] 下方,这样第二个查询将使用正确的 执行memory_id 值。

编辑更好的解决方案是准备您的查询。检查mysqli_prepare功能。

关于php - 使用 Php 从 MYSQL 数据库中提取注释导致意外的 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538246/

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