2017-09-09 1 views
0

お願いします。そしてありがとう! 私はゲームで建物をアップグレードするためのシステムを作成しようとしています。私はすべての建物で同じようにアップグレード部門を作った。プレーヤーがビルド(div)をクリックすると、機能を実行して、Ajaxポストによって満たされたhide divをアップグレードのコストとともに表示します。 divのクラス 'name'(dbの建物名と同じ)がPHPに送られ、必要なデータが取得されます。それは今までうまく動作します...ボタンにclickイベントを追加しました。これは、アップグレード操作を行い、応答ajaxフィールドで「正しい」とエコーする別のPHPにdivの '名前'を送信する必要があります。しかし、私はbtnをクリックすると、ログエラーは表示されません...エラー:SELECT ress1、ress2 FROM cost_cladiri where = 'camp_1'(ビルドの名前をdbの代わりに変数(div名)に代入してアクセスしました直接PHP、同じエラー...ここ は、私が間違ってやった何私のAJAXと私のPHP何を使用する:sql == trueとsql === true?

if(!isset($_SESSION)) 
{ 
session_start(); 
} 
$dbserver   = "localhost"; 
$dbusername   = "root"; 
$dbpassword   = ""; 
$db     = "worlddomination"; 

$conn = mysqli_connect($dbserver,$dbusername,$dbpassword,$db); 
if ($conn->connect_error) 
{ 
    die("No connection:".$conn->connect_error); 
} 

$username = $_SESSION['username']; 
//$buildcost = $_POST['building']; 

$sql = "SELECT ress1,ress2 FROM cost_cladiri WHERE building = 'camp_1'"; 
$result = mysqli_query($conn,$sql); 
$row = mysqli_fetch_assoc($result); 
$ress1 = $row['ress1']; 
$ress2 = $row['ress2']; 
if($conn->query($sql) === TRUE){ 
    echo "$ress1"; 
} 
else{ 
    echo "Error: ".$sql."<br/>".$conn->error; 
} 

upgrade_handle.php

function getbuild(e) { 
    $.ajax({ 
    type: 'post', 
    url: '../account-handeling/get_cost_upgrade.php', 
    data: { 
    building: e.className, 
}, 
    success: function (response){ 
    $('#display_cost').html(response); 
$("#increase").click(function(){ 
    $.ajax({ 
    type: 'post', 
    url: '../account-handeling/upgrade_handle.php', 
    data: { 
    building: e.className, 
}, 
    success: function (response){ 
    $('#display_cost').html(response); 
    } 
}); 
}) 
     } 
    }); 
    } 

ある?ありがとう!!!

+0

AJAXを取り出して実行すると、同じ動作になりますか? – chris85

+0

私はcamp_1で変数を変更するphp direct linkにアクセスしようとしました。私は私のSQLで問題があると思うが、私の 'すべての時間の作業SQL表現... PSです。私はPHPにアクセスする前にセッションクッキーを削除しようとしませんでした。私は家にいるときにそれを試してみる。 ty –

答えて

1

selectクエリMysqli::queryメソッドはmysを返しますそれは== trueかもしれないので、qli_resultオブジェクトは=== trueになりません。

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

私はそれ!== falseまたはinstanceof mysqli_resultかどうかを確認しようとするだろう。

編集:同じことをオブジェクト指向と一度手続き的に2回クエリします。

+0

申し訳ありませんが、私は条件をうまく説明していません。私は同じことを2回どこでクエリしたのですか? –

+0

プロシージャスタイルの '$ result = mysqli_query($ conn、$ sql)'と、オブジェクト指向のif内部の '$ conn-> query($ sql)'です。再度照会するのではなく、 'if'の中で手続き型の' $ result'を使うことができます。 –

+0

私はPC上にいるときにあなたのアドバイスを適用しようとし、私は結果を返すでしょう。ありがとうございます ! –

関連する問題