2016-10-01 34 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'" 

希望所以这个解释可能是清楚的理解目的,你可以更好地编写代码。

快乐编码:)