mysql_fetch_array()
Stefan
- php
Hallo zusammen!
Ich habe da eine sehr seltsame Fehlermeldung bekommen und hoffe, jemand kann mir aufklärend weiterhelfen:
Unabhängig davon, ob man Jochen Frankes "PHP 5 - echt einfach" mag oder nicht: Er stellt darin einige gute Hilfen für mySQL-in-Verbindung-mit-PHP-Anfänger zur Verfügung. Unter anderem auch die Abfrage von mehreren Datensätzen z.B. mit gleichen Nachnamen aus einer mySQL-Tabelle.
Ich habe seinen Code quasi 1:1 übernommen (dazu lädt er ja ein), um bei einer Suche nach allen Personen mit z.B. einem "maier" im Nachnamen den richtigen zur weiteren Verarbeitung auszuwählen. Der namensteil (also z.B. "maier") wird aus einem Suchformular aus dem Formularfeld "name" übergeben.
Und so sieht das dann aus:
<?php
$name=strip_tags($_POST['name']);
$db = mysql_connect("localhost","benutzer","kennwort") or die ("Verbindung fehlgeschlagen!");
mysql_select_db("datenbank",$db);
$suche_SQL="SELECT * FROM tabellenname WHERE nachname LIKE %" . $name . "%";
$suche_result=mysql_query($suche_SQL);
?>
<form method="POST" action="nextstep.php" name="codeabfrage">
<table>
<tr>
<td>Vorname</td>
<td>Nachname</td>
<td>Ort</td>
<td>Diesen Eintrag auswählen?</td>
</tr>
<?php
while($ergebnis=mysql_fetch_array($suche_result)) {
?>
<tr>
<td><?php echo $ergebnis['vorname'] ?></td>
<td><?php echo $ergebnis['nachname'] ?></td>
<td><?php echo $ergebnis['ort'] ?></td>
<td><INPUT TYPE="radio" NAME="code" value="<?php echo $ergebnis['id'] ?>"></td>
</tr>
<?php
}
mysql_close();
?>
</table>
<p><input type="submit" name="codesuche" value="Abruf"></p>
</form>
Nach einigen Querelen mit parse-error-Fehlermeldungen ist nun eigentlich alles korrekt (denke ich). Und nun kommt die folgende völlig unglaubliche Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Wer kann mir das erklären, was habe ich falsch gemacht und wie kann ich es richtig machen (und warum funktioniert es bei Jochen Franke)???
Schonmal vielen Dank im Voraus und schöne Grüße -
Stefan
Huhu Stefan
mysql_select_db("datenbank",$db);
$suche_result=mysql_query($suche_SQL);
Ergänze in diesen Zeilen jeweils
OR die (mysql_error());
Viele Grüße
lulu
Hallo lulu,
mysql_select_db("datenbank",$db);
$suche_result=mysql_query($suche_SQL);Ergänze in diesen Zeilen jeweils
OR die (mysql_error());
Das war's - es funktioniert - ich bin happy.
Vielen lieben Dank!
Stefan
Hello,
Wer kann mir das erklären, was habe ich falsch gemacht und wie kann ich es richtig machen (und warum funktioniert es bei Jochen Franke)???
Das Script ist das reinste Chaos. Es ternnt nicht sauber die typischen Bereiche eines Scriptes.
Da gibt es hier einschlägige Threads.
Das Script beachtet auch keinerlei Fehlerbehandlung.
Wenn ich eine SQL-Abfrage durchführe, dann sollte ich hinterher auch die möglichen Fehlermeldungen Abfragen. Das klappt z.B. bei MySQL, Informix, Oracle und anderen vernünftig angelegten Abfrageschittstellen. Selbst bei Btrieve klappt das. Bei M$SQL konnte mir noch niemand eine allgemeingülttige Antwort geben...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Das Script ist das reinste Chaos. Es ternnt nicht sauber die typischen Bereiche eines Scriptes.
Das Script beachtet auch keinerlei Fehlerbehandlung.
Wenn ich eine SQL-Abfrage durchführe, dann sollte ich hinterher auch die möglichen Fehlermeldungen Abfragen. Das klappt z.B. bei MySQL, Informix, Oracle und anderen vernünftig angelegten Abfrageschittstellen. Selbst bei Btrieve klappt das. Bei M$SQL konnte mir noch niemand eine allgemeingülttige Antwort geben...
Hallo Tom,
dies Zeit für diesen Kommentar hättest du dir sparen können. Informationsgehalt für einen nach Hilfe suchenden Nicht-Profi tendiert stark gegen Null!
Grüße -
Stefan
Hello,
Das Script ist das reinste Chaos. Es ternnt nicht sauber die typischen Bereiche eines Scriptes.
Das Script beachtet auch keinerlei Fehlerbehandlung.
Wenn ich eine SQL-Abfrage durchführe, dann sollte ich hinterher auch die möglichen Fehlermeldungen Abfragen. Das klappt z.B. bei MySQL, Informix, Oracle und anderen vernünftig angelegten Abfrageschittstellen. Selbst bei Btrieve klappt das. Bei M$SQL konnte mir noch niemand eine allgemeingülttige Antwort geben...Hallo Tom,
dies Zeit für diesen Kommentar hättest du dir sparen können. Informationsgehalt für einen nach Hilfe suchenden Nicht-Profi tendiert stark gegen Null!
Frag doch, wqenn Du 'was nicht verstehst!
Mein Posting enthält für einen "Nicht-Profi" mindestens drei Hinweise, die ggf. neue Threads taugen.
Aber "Arschabwischen" ist hier nicht üblich im Forum ;-))
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Die fehlermeldung bedeutet, das er keine abfrageergebnisse kriegt. Das kann dadurch sein, dass nichts in der Db steht oder du hast eine falsche variable mysql_fetch_array übergeben.
Das sind die häufigsten auslöser für diese Meldung. Es gibt aber noch mehr.