2016-12-29 16 views
0

私は質問をする前にhere(と多くの多くの多くの他の場所)を見ました。PHPクエリの変数

'".$user_id." ''$user_id'、さらに?というフォーマットを私の変数ホルダーとして使用しようとしましたが、同じエラーが表示されています。また、$_GETから$_POSTに変更しようとしました。

ここに私のコードです。

<?php 

    $connection = mysqli_connect("db_name", "user", "pass", "db") or die(mysqli_error($con); 

    $user_id = $_GET["user_id"]; 
    $event_id = $_GET["event_id"]; 

    $query = "SELECT * FROM user where user_id BETWEEN('".$user_id."'+1) and ('".$user_id."'+4);"; 
    $query .= "SELECT * FROM user_in_event WHERE user_id = '".$user_id."' AND event_id = '".$event_id."' "; 

    if (mysqli_multi_query($connection, $query) or die(mysqli_error($connection).$query) ){ 
     do { 
    /* store first result set */ 
      if ($result = mysqli_store_result($connection) or die(mysqli_error($con))) { 
       while ($row = mysqli_fetch_assoc($result) or die(mysqli_error($con))) 
        $array[] = $row; 

       mysqli_free_result($result) or die(mysqli_error($con)); 
       } 

      } while (mysqli_next_result($connection) or die(mysqli_error($con))); 
    } 
    header('Content-Type:Application/json'); 
    echo json_encode($array); 

?> 

と、これは誤り

mysqli_error() expects parameter 1 to be mysqli null given 

であると私はDB自体とquerysにチェックインしたが、正常に動作します

*編集 固定 "詐欺" "接続" するのではなく、今すぐ結果を得るのではなく、結果的にbalnkを取得する必要があります

+1

また、 'BWTWEEN'。 – shmosel

+0

あなたは本当に "BWTWEEN"を使っていますか、それとも質問のタイプミスですか? ( "BETWEEN"であるべきです) – MacPrawn

+0

大変ありがとうございます。私はまだ動作していないので、メインの質問を更新します。mysqli_error()はパラメータ1がmysqliになることを期待しています – styx

答えて

0

$ query = "SELECT * FROM user where user_id BETWEEN ($ user_id + 1)。 ")...

$ user_id BETWEEN( ''。$ user_id + 1) ')。
+0

は同じ結果を得ました – styx

1

mysqli_error()は、最初のパラメータがmysqliリソースであると想定しています。あなたの場合、null値を保持する未定義の変数$conを使用しています。

通常、mysqliリソースは、mysqli_connectを呼び出してデータベースに接続して取得します。

したがって、$conは、$connectionmysqli_error()に置き換える必要があります。

+0

今、私はjsonレスポンスの代わりに空白になっています – styx

+0

あなたはおそらくあなたのコードにもっと間違いがあります。 e。あなたのデータベースから値を取得するとき、または$配列は単に空です。 – user3606329

+0

私の理解を超えて何らかの理由で同じファイルが正常に動作しています – styx

-1

BETWEENは単純な数字を探しています。 例 SELECT * FROM製品 ここでは10と20の間の価格です。

クエリには、おそらくnull値を引き起こす複雑な書式があります。私はあなたが2つの ";"クエリを閉じるにはただ1つの場所にする必要があります。時には簡素化するのに役立ちます。

は、クエリの前に検索値を作成してみてください:

$は= $ user_idを+ 1を開始します。 $ end = $ user_id + 4;

次に、クエリは になります。$ query = "SELECT * FROM user user_id BETWEEN $ startおよび$ end";

これが役に立ちます。

関連する問題