2016-10-01 105 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. 您可以使用LIKE子句和WHERE子句。
  3. 您可以使用LIKE子句代替等號。
  4. 當LIKE與%符號一起使用時,它將像元字符搜索一樣工作。
  5. 您可以使用AND或OR運算符指定多個條件。
  6. WHERE ... LIKE子句可以與DELETE或UPDATE SQL命令一起使用來指定條件。

被允許在LIKE語句模式的不同類型:

方法一:

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

下面的SQL語句選擇所有用戶開始名稱與字母「s」:

方法二:

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

下面的SQL語句選擇所有用戶結尾以字母 「小號一個名爲」

方法三:

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

下面的SQL語句選擇所有用戶提供包含模式「庫馬爾一個名爲」

解決您的問題

你必須使用這樣的查詢。您錯過了您在LIKE語句中附加的變量的引號。

因此你的查詢應該是這樣的。

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

因此整個代碼如下:

<?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 
     } 
    }   
} 
?> 

注:你先放回聲SELECT語句,然後通過將出口突破執行;並複製回顯的語句並將其放入DB的SQL中,然後檢查插入時是否發生錯誤。如果沒有發生錯誤,請刪除回顯並刪除退出;

上面的例子中的示例場景:

如果崗位價值似乎是這樣的:

$ruta = 10; 
$clase = test; 

如果您呼應$sql聲明你應該得到這樣的。

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

希望所以這個解釋可能是清楚的理解目的,你可以更好地編寫代碼。

快樂編碼:)