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

标签 php mysql json

我正在使用 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);
    }

?>

最佳答案

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

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

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

相关文章:

mysql - 如何获取多个表中多个字段中的不同字段值?

php - json_encode 将数组转为对象

iphone - JSONKit解析json字符串

php - 如何创建表行作为选择选项

php - 更新字段并选择单个条件为真的多个字段? MySQL

PHP 搜索表单安全性改进和其他建议

javascript - 打印 JSON 属性

php - 使用GAPI返回包含 View 百分比的页面列表

php - 如何在 PHP 中设置 $PATH?

使用 nl2br 进行 PHP JSON 编码