2016-08-31 1 views
-1

Kann jemand mir helfen, den Fehler in meinem Code herauszufinden? Ich möchte Daten durch zwei Eingabe-Suche anzeigen .. mein Code geht wie diese.MULTI SUCHE PHP

<table> 
    <tr> 
     <td>Studid</td> 
     <td>Course</td> 
    </tr> 

<?php 
    include ("connect.php"); 


    if(isset($_POST['submit'])) 

    { 
    $studno=$_POST['idsearch']; 
    $scourse=$_POST['coursesearch']; 
    $sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse.""); 

    } 

    ?> 


    <?php 
    while($row=mysql_fetch_array($sql)) 

    { 


} 

?> 
    <tr> 
     <td><?php echo $row['studid'];?></td> 
     <td><?php echo $row['course'];?></td> 
    </tr> 



</table> 

ich habe diesen Fehler in meinem Bildschirm.

"mysql_fetch_array() erwartet Parameter 1 Ressource zu sein, da boolean in"

Dank! :)

+0

die veraltete Bibliothek (Verwendung 'mysqli_ *' oder PDO) zu ignorieren und die SQL-Injection-Schwachstelle der Fehler das Problem erzählt. '$ sql' ist ein boolescher Wert. das bedeutet, dass etwas mit Ihrer Verbindung oder Ihrer Anfrage nicht stimmt. –

+0

Überprüfen Sie $ result, bevor Sie es an mysql_fetch_array übergeben. Sie werden feststellen, dass es falsch ist, weil die Abfrage fehlgeschlagen ist. –

+1

Mögliches Duplikat von [mysqli \ _fetch \ _array()/mysqli \ _fetch \ _assoc()/mysqli \ _fetch \ _row() erwartet, dass Parameter 1 resource oder mysqli \ _result ist. boolean gegeben] (http://stackoverflow.com/questions/2973202/mysqli-fetch-array-mysqli-fetch-assoc-mysqli-fetch-row-expects-parameter-1) –

Antwort

0

Sie sollten ein bisschen Debuggen verwenden. Versuchen Sie folgendes:

$sql = "SELECT * FROM cfnr WHERE studid= '".$studno."' AND course = '".$scourse."'"; 
$query = mysql_query($sql) or die(__LINE__."has an error: ".mysql_error()); // Gives an error if there's a syntax error 

$row = mysql_fetch_array($query); 

echo "<pre>"; 
print_r($row); 
exit; 

while ($row = mysql_fetch_array($query)) { 
    /* Other code */ 
} 
+0

Ich habe es versucht. aber es sagt, dass meine "Abfrage leer war". Was werde ich damit machen?habe ich einen Fehler in meiner Select-Abfrage? –

+0

Wo genau zeigt es das? Okay, lassen Sie mich meine Antwort ändern und lassen Sie mich wissen, was Sie jetzt bekommen. –

+0

wenn ich es auf meiner Seite laufen lasse. OK danke. –

0

Ersetzen Sie Ihre SQL mit folgenden Zeile:

$sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse."") or die(mysql_error()); 
+0

Ich habe es Sir, aber es zeigt den gleichen Fehler, undefinierte Variable in während ($ row = mysql_fetch_array ($ sql)) und mysql_fetch_array() erwartet Parameter 1 als Ressource, Null gegeben in. –

0

Das Problem ist Ihr `$ SQL-Variable ist in der, wenn die Bedingung, und wenn Ihr, wenn die Bedingung nicht gibt es keinen Spielraum von $ sql außerhalb, wenn die Bedingung

Statt

while($row=mysql_fetch_array($sql)) 

Verwenden

while([email protected]_fetch_array($sql)) 

Sie erhalten diesen Fehler nicht.

+0

und auch Ihre Abschnitt innerhalb der while-Schleife und Ihre while-Schleife innerhalb der if-Bedingung – PBajpai

+0

ich habe es nichts auf meiner Seite angezeigt. –

+0

können Sie Ihren Code nach Änderungen einfügen – PBajpai

0

("AUSWÄHLEN * FROM cfnr WHERE studid = '$ studno' UND Kurs = '$ scourse.'") Oder sterben (mysql_error());

0

Ändern Sie den Code:

while($row=mysql_fetch_array($sql)) 

zu

while($row=mysql_fetch_assoc($sql)) 

und auch diesen Code ändern:

$sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse.""); 

zu

$sql=mysql_query("SELECT * FROM cfnr WHERE studid= '$studno' AND course='$scourse'"); 

Nicht nur das, die enge Klammer der isset() sollte vor Ihrem (?>) letzten schließenden PHP-Tag sein.

Ändern Sie den Code:

include ("connect.php"); 

zu

include 'connect.php';