2016-06-14 8 views
0

Wenn ich einzelne verwenden, wo Klausel wie WHERE source_city = '$to_name', arbeiten sie gut, aber wenn fügen eine weitere Überprüfung es mir Fehler zeigen:Mysqli Where-Klausel Fehler

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result

<?php 
     if(isset($_GET["view"])){ 
      $to_name = $_GET["to_name"]; 
      $from_name = $_GET["from_name"]; 
      $select_user = "SELECT * from citi 
       WHERE source_city = '$to_name' AND 
       dest_city = '$from_name'"; 
      $run_user = mysqli_query($conn,$select_user); 
      if(!$run_user){ 
       echo "Error!"; 
      } 
      while ($row=mysqli_fetch_array($run_user)){ 
      $id = $row[0]; 
      $source_name = $row[1]; 
      $dest_name = $row[2]; 
      echo " 
        <br><br> 
        $id<br> 
        $source_name<br> 
        $dest_name<br>"; 

     } 
    } 

    ?> 
+1

Dieser Fehler bedeutet, dass Sie kein gültiges Ergebnis von mysqli_query() 'übergeben. Wahrscheinlich generieren Sie einen MySQL-Fehler. Sie müssen herausfinden, was der MySQL-Fehler ist - versuchen Sie, Ihr '$ select_user' auszublenden, um zu sehen, ob die von Ihnen ausgeführte Abfrage gültig ist (Sie können dies direkt mit etwas wie phpMyAdmin ausführen, wenn Sie die Abfrage richtig machen wollen und bekomme Feedback, wie du es tust). –

+0

Hinweis: Durch die Verwendung der String-Ersetzung in Abfragen ist Ihr Code anfällig für SQL-Injection-Angriffe. Sie sollten stattdessen [vorbereitete Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) verwenden. – Mureinik

+0

Fügen Sie die mysql-Abfrage in Ihre Frage ein –

Antwort

1

Die korrekte Syntax für muliple WHERE Aussagen ist:

WHERE condition1 AND condition2 AND condition3 

Mit OR der Vollständigkeit halber:

WHERE (condition1 AND condition2) OR (condition3 AND condition4) 
+1

danke aber immer noch der gleiche Fehler –