如何将数据库查询返回到ajax?

时间:2016-12-06 17:17:41

标签: php jquery ajax

我想检查用户是否喜欢某个项目,但我不确定如何将数据库查询的结果返回给ajax。

我将根据结果显示不同的html。

$query = "SELECT itemID from favourites WHERE userid = '" . $user. "'";
$result = mysql_query($query);

echo json_encode($result);

Jquery的

$.ajax({
  url: "inc/functions.php",
  type: "POST",
  data: {--result--},
  success: function () {

      // if result found in database 
         $('favourite').hide();

      // if result not found
         $('favourite').show();
      }
});

我无法弄清楚如何在jquery代码中显示$ result。

任何帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

在这种情况下,

$result是表示结果的PHP对象。 在将结果发送回JS之前,您必须使用fetch()方法提取结果。

this link。在评论的正上方有一个所有fetch - 家庭方法的列表。

此外,您需要事先使用mysqli_connect(或您的mysql_connect)与您的数据库建立连接。

正如评论中所述,您应该使用mysqli*函数系列而不是mysql*

答案 1 :(得分:1)

感谢有关mysqli的信息的评论。我更新了代码并解决了ajax部分。

对于其他被困的人,我让它像这样工作:

PHP

require ("../../connection.php");

$sql = "SELECT * FROM favourites WHERE userID = ? AND itemID = ?";
$user = $_POST['userID'];
$item = $_POST['itemID'];

$statement = $db->prepare($sql);
if($statement === false) {
    trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $db->error, E_USER_ERROR);
}

$statement->bind_param('ii',$user,$item);

$statement->execute();

$statement->bind_result($user,$item);

while($statement->fetch()){
    echo 1;
}

$statement->close();

Jquery的

$.ajax({
url: "inc/userList.php",
data: userList,
type: "POST",
success: function (result) {

   if (result == 1){
      $('#addItem').css('display', 'none');
      $('#removeItem').css('display', 'inline-block');
    } else {
      $('#addItem').css('display', 'inline-block');
      $('#removeItem').css('display', 'none');
    }    
}
});