Почему AJAX возвращает дублированные данные?

#javascript #php #jquery #ajax

#javascript #php #jquery #ajax

Вопрос:

Итак, что я делаю, это ищу записи, хранящиеся в базе данных, используя AJAX, но когда он печатает данные обратного вызова, первая запись дублируется:

Мой код:

 $gUser = $_GET['q'];

$connect = mysql_connect("localhost", "root", "") or die("Could not connect to the server");
mysql_select_db("socialj") or die("Could not connect to the database");

$result = mysql_query("SELECT fullname, email FROM users WHERE fullname LIKE '%$gUser%' ");

while($array[] = mysql_fetch_array ($result))
{
    foreach($array as $r)
    {
        echo $r['fullname'].' | '.$r['email'].'<br>';
    }
}
  

?>

Код JavaScript:

 $(document).ready(function (){
$('#searchh').on('submit', function (e){
    e.preventDefault();
    var sVal = $('#search').val();
        $.ajax({
            type: 'get',
            url: 'profile.php',
            data: {q : sVal},
            success: function (data) {
                alert(data);
            }
        });
});
  

});

Не могли бы вы, ребята, мне помочь? Я не знаю, что происходит… Спасибо.

Ответ №1:

Замените это

 while($array[] = mysql_fetch_array($result)) {
    foreach($array as $r) {
        echo $r['fullname'] . ' | ' . $r['email'] . '<br>';
    }
}
  

с помощью этого

 while($row = mysql_fetch_array($result)) {
    echo $row['fullname'] . ' | ' . $row['email'] . '<br>';
}