2016-10-01 14 views
-4
$sql = "SELECT n_asiento FROM asiento WHERE estado='Libre' and n_asiento like '%".$clase."%'" and "ruta"="'".$ruta."'"; 

enter image description here修正このしてください

は、いくつかは、アポストロフィと混同し、ダニ取得していてください私のためにこの問題を解決することができ、ありがとうございました!

+0

私は解決策を提供しました。私のコードに関する考えを共有する。開発に何らかの障害がある場合は、教えてください。 –

答えて

0

Likeクエリは間違った方法で変数の周りの引用符を見逃しました。

LIKE - LIKE演算子は、列内の指定されたパターンを検索するために使用されます。

構文:

SELECT column_name(s) 
FROM table_name 
WHERE column_name LIKE pattern; 
  1. あなたは、WHERE句を使用して、任意の条件を指定することができます。
  2. WHERE句とともにLIKE句を使用できます。
  3. 等号の代わりにLIKE句を使用できます。
  4. LIKEを%記号とともに使用すると、メタ文字検索のように機能します。
  5. AND演算子またはOR演算子を使用して、複数の条件を指定できます。
  6. WHERE ... LIKE句は、DELETEまたはUPDATE SQLコマンドとともに使用して、条件を指定することもできます。 LIKEステートメントで許可されているパターンの

異なるタイプ:

方法1:

SELECT * FROM users 
WHERE name LIKE 's%'; 

次のSQL文はを開始名前を持つすべてのユーザーを選択し、 「s」という文字:

方法2:

方法3::

SELECT * FROM users 
WHERE name LIKE '%s'; 

次のSQL文は、文字 "" とを終了名前を持つすべてのユーザーを選択し、

SELECT * FROM users WHERE name LIKE '%kumar%'; 

以下のSQL文では、「クマーを」パターンを含む名前を持つすべてのユーザーを選択します。あなたの問題

ソリューションは、あなたは、このようなクエリを使用する必要があります。 LIKE文で追加している変数の引用符が欠落しています。

あなたのクエリは、次のようになります。

<?php 
if(isset($_POST['cla'])) 
{ 
    $ruta = $_POST['id']; 
    $clase = $_POST['cla']; 
    $servername = "localhost"; 
    $username="root"; 
    $password="root"; 
    $dbname="sct"; 
    $conn=mysqli_connect($servername,$username,$password,$dbname); 
    if(!$conn) 
    { 
     die("Connection failed:".mysqli_connect_error()); 
    } 
    else 
    { 
     $sql = "SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE '%".$clase."%' AND `ruta` ='".$ruta."'";    
     $result = mysqli_query($conn,$sql); 
     $hola = mysqli_num_rows($result); 
     if($hola==0) 
     { 
      // Handle if the Count is Zero 
     } 
     else 
     { 
      // handle if the Count is not equal to zero 
     } 
    }   
} 
?> 

注:

$sql = "SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE '%".$clase."%' AND `ruta` ='".$ruta."'"; 

したがって、全体のコードは次のようになりますあなたが最初のSelectステートメントにエコー配置し、終了を置くことによって実行を中断します。エコーされた文をコピーしてDBのSQLに置き、挿入時にエラーが発生していないかどうかを確認します。エラーが発生しない場合は、エコーを削除して終了を削除します。上記の例の

シナリオ例:あなたは$sql文をエコー場合は、このように取得する必要があり

$ruta = 10; 
$clase = test; 

ポスト値は次のようであるように思われます。

"SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE 'test' AND `ruta` ='10'" 

この説明は目的を理解するためにはっきりしているかもしれません。

ハッピーコーディング:)

関連する問題