$num = mysql_numrows($result)

Ich habe eine Film-DB, wo ich per Sucher nach Titel suchen kann.
Ich bekomm aber nur die Fehlermelung:
*********************************************************
Warning: mysql_numrows(): supplied argument is not a
valid MySQL result resource in
/var/www/web102/html/filmdb/suchen_result.php on line 62
***********************************************************

CODE:
***********************************************************

<?PHP extract($_POST);
extract($HTTP\_SERVER\_VARS); $id = $\_POST['id']; $such = $\_POST['such']; $wassucheich = $\_POST['wassucheich']; $anz = 0; $link = mysql\_pconnect("localhost","XXXXXXXXX","XXXXXXXXXX"); mysql\_select\_db("XXXXXXXXXXXXXXX",$link); if (isset ($such)) { $ksuch = $such; $such="%".$such."%"; $query = "SELECT \* FROM filmdb WHERE $wassucheich LIKE '$such' ORDER BY titel"; } $result = mysql\_query($query,$link); $num = mysql\_numrows($result); echo " "; if ($num \> 0) { for ($i = 0; $i $row[titel] "; } } else { echo "Zum Suchebegriff $ksuch wurde kein Ergebnis erzielt!! [zurück](javascript:history.back())"; } ?\> ... \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Wer weis was?? Danke und Gruss SiMpLy

vermutlich ist die SQL Query falsch…
gib Dir mal Deine $query als echo aus und versuch sie in den PhpMyAdmin einzugeben…
Da kannst Du dann relativ gut erkennen, was der Fehler ist…

Resultat:
*************************
SELECT * FROM filmdb WHERE LIKE ‚%ast%‘ ORDER BY titel
*************************

jetzt fehlt das „$wasssucheich“ zwischen WHERE und LIKE!!!

HELP (please)!

  1. die Funktion heisst mysql_num_rows() (und nicht mysql_numrows()) und
  2. den Fehler kannst du dir mit echo mysql_error(); nach dem mysql_query anschauen

Gruss
Stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

das habe ich auch schon ausprobiert. und viel mehr hats auch nicht gebracht.
die fehlermeldung zeigt auch nur das an, was ich schon weiss.

***
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‚LIKE ‚%ast%‘ ORDER BY titel‘ at line 1
***

danke trotzdem für deine auskunft

lg SiMpLy

Hallo SiMpLy,

You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax
to use near ‚LIKE ‚%ast%‘ ORDER BY titel‘ at line 1

auf mysql_num_rows() wurdest Du bereits hingewiesen. Die o.g. Fehlermeldung beschwert sich ja darüber, dass was im Query-String nicht stimmt. Hier Dein Quelltext:

$query = "SELECT \* FROM filmdb WHERE $wassucheich LIKE '$such' ORDER BY titel";

Ich weiß zwar auch nicht mehr, warum (Wegen ähnlicher Meldungen?), aber ich habe mir schon lange angewöhnt, Variablen so in meine Queries einzubauen:

$query = "SELECT \* FROM filmdb WHERE ".$var1." LIKE '".$var2."' ORDER BY titel";

Vielleicht hilt’s ja.

LG
Huttatta

gelöscht :
Ich weiß zwar auch nicht mehr, warum (Wegen ähnlicher
Meldungen?), aber ich habe mir schon lange angewöhnt,
Variablen so in meine Queries einzubauen:

$query = „SELECT * FROM filmdb WHERE „.$var1.“ LIKE
'“.$var2."’ ORDER BY titel";

Vielleicht hilt’s ja.

LG
Huttatta

Hallo Huttatta,

die beiden Schreibweise erzeugen den gleichen SQL-String!

Hallo SiMpLy,

hast Du ganz sicher in der Suchmaske die Variable $wassucheich verwendet oder ist es eventuell $WasSucheIch? Dies kann man u.a. auch mit print_R($_POST); überprüfen. print_r gibt die Elemente eines Arrays aus.

MfG Georg V.

*hehe*

nein nein, alles total falsch. :confused:
es war nicht nur dieser Fehler sondern ein ganz simpler im obigen teil des ganzen.

Habe es unterdessen rausgefunden. aber danke trotzdem für diese liebe hilfe.

mfg SiMpLy