2016-12-06 8 views
-1

ユーザーがアイテムを好んだかどうかを確認したいが、データベースクエリの結果をajaxに返す方法がわからない。データベースクエリをAjaxに戻す方法は?

結果に応じて異なるHTMLが表示されます。

PHPの

$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のコードで$結果を表示する方法を見つけ出すことはできません。

ご迷惑をおかけして申し訳ございません。

+5

***してください[ 'mysql_ *'関数を使用して停止](HTTP ://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)*** [これらの拡張機能](http://php.net/manual/en/migration70。 removed-exts-sapis.php)がPHP 7で削除されました。[prepared]について学んでください(http://en.wikipe [PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi](http://php.net/manual/en/)のステートメントについては、dia.org/wiki/Prepared_statementを参照してください。 /mysqli.quickstart.prepared-statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –

+0

http://php.net/manual/en/mysqlinfo.api.choosing.php – AbraCadaver

+2

[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクションの危険性があります攻撃](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

答えて

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

1

$resultは、結果を表すPHPオブジェクトです。 結果をJSに送り返す前に結果を抽出するには、fetch()メソッドを使用する必要があります。

this linkを参照してください。コメントのすぐ上にあるfetch-familyメソッドのリストがあります。

また、事前にmysqli_connect(またはお客様の場合はmysql_connect)を使用してデータベースに接続する必要があります。

コメントに記載されているとおり、mysql*の代わりにmysqli*ファンクションファミリを使用する必要があります。

+0

情報ありがとうございます。私は今fetch()を調べます。 – sol

関連する問題