SQL查询返回整个表而不是单行

时间:2018-12-21 18:03:59

标签: php mysql sql ajax

单击div后,ajax请求将通过一个param(id)发送到PHP。但是,我收到的不是一张表格,而是一张表格。

无论使用while循环,还是放置LIMIT进行查询,我总是在表中获取所有内容。

这是jquery:

$('.fa-expand').click(function() {

    var storyId = $(this)[0].id.split('_')[1];
    var data = {singleStoryInfoWithId: storyId};

    $.ajax({

        url: '../modules/feed.php',
        type: 'POST',
        data: data,
        success: function(response) {

            $('.newsModal').append(response);
            console.log(response);
        }
    });
});

这是PHP:

if(isset($_POST['singleStoryInfoWithId'])) {

    getStoryWitId($_POST['singleStoryInfoWithId']);
};


function getStoryWitId ($id) {

    global $connectionFeed;

    $query = "SELECT story_title, story_date, story_content, story_cover FROM story WHERE story_id={$id}";

    $result = mysqli_query($connectionFeed, $query);

    $row = mysqli_fetch_assoc($result);

    $story_title = $row['story_title'];
    $story_content = $row['story_content'];

    echo "<h2>$story_title</h2>";
    echo "<h2>$story_content</h2>";
}

它确实发送了请求的查询,但是在整个表的末尾。

在我的数据库中,我有5个故事(第一,第二,第三等),例如,当我单击第三个故事时,在发送ajax请求之后,我从服务器获得的响应是​​:第一,第二,第三,第四,第五,第三。最后一个是我唯一需要的一个。

那我到底在做什么错呢?

先谢谢大家!

1 个答案:

答案 0 :(得分:0)

问题在于,一旦返回所需的输出,就永远不会exit()。因此,将执行if表达式下面的所有指令并将其混合到您的输出中。

将来,请创建一个最小,完整且可验证的示例,以便我们可以更早地看到。

if(isset($_POST['singleStoryInfoWithId'])) {    
    getStoryWitId($_POST['singleStoryInfoWithId']);
}

echo 'This will still get mixed in with the output';

调用getStoryWitId()后,您需要exit(),以便程序忽略以下任何说明。

if(isset($_POST['singleStoryInfoWithId'])) {
    getStoryWitId($_POST['singleStoryInfoWithId']);
    exit();
}

echo 'This will no longer get mixed in with the output';