Ups, mach mal schnell vor das empty() ein Ausrufezeichen. So wie es jetzt definiert ist. Wäre die Bedingung, dass die Variablen zwar existieren können aber leer sein müssen. Es muss also heißen.
PHP-Code:
if(!empty($_POST['searchfrom']) && !empty($_POST['searchfor']))
Die Anführungszeichen bei der Abfrage dürfen da nicht stehen.
Die Variable gibt deine Spalte aus, in der gesucht werden soll. Tabellen- und Feldbezeichnungen dürfen nicht in Anführungszeichen gesetzt sein.
PHP-Code:
$searching = "SELECT * FROM songlist WHERE $searchfrom LIKE '$searchfor'";
Zitat:
Hab dann bei beiden die abschliesende Klammer weggemacht, dadurch kam kein Fehler mehr.
Nächster fehler der dann kam war:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /****/*****/testing.php on line 60
|
Das liegt daran, dass die Bedingung falsch definiert ist. (Es sollen die Variablen nicht existieren oder leer sein). Diese wurde ja erfüllt und dadurch waren in deiner Abfrage keine abzufragende Spalte und keine Suchbegriff angegeben. Wenn du die Bedingung wie oben geschrieben abänderst ist auch dieser Fehler weg.
Solche Fehlermeldungen haben etwas mit deiner Datenbankabfrage zu tun. Diese von PHP erzeugten Meldungen sagen einem aber nicht viel. mit mysql_error() kannst du dir in eine Fehlermeldung von MySql ausgeben lassen. Diese sagen einem schon mehr.
Das kannst du so definieren.
PHP-Code:
mysql_query($result) or die(mysql_error()."<br>$result");
//or die(mysql_error() wenn Fehler im Query, dann stoppe Script und gib Fehlermeldung aus.
//."<br>$result") gibt dir zusätzlich zu der Fehlermeldung auch deine Abfrage mit aus
//So kann man gleich sehen was los ist und ob alle Werte übergeben wurden u.s.w.