SQL-запрос возвращает всю таблицу вместо одной строки - PullRequest
0 голосов
/ 21 декабря 2018

После нажатия на div, ajax-запрос отправляется в PHP с одним параметром (id).Но вместо одной строки я получаю всю таблицу.

независимо от использования цикла 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 голосов
/ 22 декабря 2018

Проблема в том, что вы никогда не exit(), как только вы вернули желаемый результат.Таким образом, любые инструкции ниже этого выражения if будут выполнены и смешаны с вашим выводом.

В будущем, пожалуйста, создайте минимальный, complete и проверяемый пример, чтобы мы могли видеть это раньше.

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...