Was ist falsch in PHP?
Stephan
- php
0 benji0 Stephan
0 Severin Kacianka0 Frank
Hallo,
ich habe folgenden Code, er sollte dann das Suchergebnis ausgeben, wenn man aber kein Suchergebnis eingegeben hat, kommt das:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web1027/html/de/search/ergebnis.php3 on line 242
241: $res = mysql_db_query("", "SELECT * FROM Search-Engine WHERE titel LIKE %{$suche}% OR meta LIKE %{$suche}% OR beschreibung LIKE %{$suche}% ORDER BY pr DESC");
242: $num = mysql_num_rows($res);
243:
244: // Tabellenbeginn
245: echo "<table border=0>";
Kann mir jemand sagen, was falsch ist? Und wie kann ich es machen, dass wenn kein Suchergebnis gefunden wurde kommt: Die Suche ergab kein Ergebnis.
Danke schon jetzt
Stephan
Hallo !
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web1027/html/de/search/ergebnis.php3 on line 242
241: $res = mysql_db_query("", "SELECT * FROM Search-Engine WHERE titel LIKE %{$suche}% OR meta LIKE %{$suche}% OR beschreibung LIKE %{$suche}% ORDER BY pr DESC");
242: $num = mysql_num_rows($res);
Kann mir jemand sagen, was falsch ist? Und wie kann ich es machen, dass wenn kein Suchergebnis gefunden wurde kommt: Die Suche ergab kein Ergebnis.
Tja, wie wärs denn mit einem einfachen mysql_db_query() or blabla(); ?? Bei Fehlern wird blabla() aufgerufen, was dann eben eine Fehlermeldung ausgibt, in der Form von:
KEin Suchergebnis gefunden <klein>Oder der Admin hat ne schlechte suche erstelt
;-) nein, aber hast du deine Suchmaschiene selbst programmiert ? Oder irgendwas vorgeschriebenes aus'm internet ? Falls das 2. zutreffend ist, sag mir mal bitte deine Quelle, meine lokale Suchmaschiene ist nämlich ein bisschen schrottig, und außerdem nutzt sie keine Datenbank, sondern eine Textdatei (schlecht...)
benji
Ich habe die selbst gemacht, ist nichts großes, kann sie Dir geben, wenn mir jemand den Error wegmachen hilft...
(Oder kommt der Error von der keine Ergebnisse anzeige?)
Hallo,
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web1027/html/de/search/ergebnis.php3 on line 242
Das sagt, dass deine MySQL Query nicht in Ordnung ist.
241: $res = mysql_db_query("", "SELECT * FROM Search-Engine WHERE titel LIKE %{$suche}% OR meta LIKE %{$suche}% OR beschreibung LIKE %{$suche}% ORDER BY pr DESC");
Und das sagt, dass du das Manual nicht gelesen hast http://at2.php.net/manual/en/function.mysql-db-query.php.
gruß,
Severin
Hallo,
ich habe ein anderes Manual gelesen, da stand das so drin (ausser das mit dem WHERE ... like ...)
Danke schon jetzt
Stephan
Hallo,
ich habe ein anderes Manual gelesen, da stand das so drin (ausser das mit dem WHERE ... like ...)
Darf ich fragen welches?
gruß,
Severin
Galileo Computing PHP Openbook, ist hanz gut, hat viele Beispiele...
Hallo,
Galileo Computing PHP Openbook, ist hanz gut, hat viele Beispiele...
Ich kenne es nicht, aber du solltest dich generall an das offizielle Manual auf http://www.php.net halten und da steht ganz klipp und klar, dass du die Funktion mysql_db_query _nicht_ verwenden sollst.
gruß,
Severin
Ok, dann muss ich mal nachsehen, was ich dann nehme...
Danke für die Hilfe
Stephan
Jo Meister
echo mysql_errno() . ": " . mysql_error() . "\n";
Gibt Dir aus wo der Fehler ist!
mysql_query ()
Könnte helfen!
TomIRL
Hi Stephan,
241: $res = mysql_db_query("", "SELECT * FROM Search-Engine WHERE titel LIKE %{$suche}% OR meta LIKE %{$suche}% OR beschreibung LIKE %{$suche}% ORDER BY pr DESC");
sieht so aus als wäre Dei SQL etwa schräg.
evtl. ist das besser:
SELECT * FROM Search-Engine WHERE titel LIKE "%$suche%" OR meta LIKE "%$suche%" OR beschreibung LIKE "%$suche%"
Das ORDER by sollte den entsprechenden Spaltennamen tragen. Die Spalte heißt sicher nicht 'pr DESC', oder?
Die Query dann mal auf der Kommandozeile ausführen und testen, ob sie funzt!
Wenn die Query ein Ergebnis auswirft und keine Fehlermeldung, dann bau sie in Dein Script ein. Hier ein Beispiel wie es funzen könnte:
<?php
$host = <host_name>;
&db = <datenbank_name>;
$uesr = <user_name>;
$passwd = <password>;
$connection = mysql($host, $user, $passwd);
mysql_select_db($db, $connection)
die("Konnte keine Verbindung mit der db herstellen!");
$query = "Dein_Select_Statement";
function function_name($connection, $query)
{
$result = @ mysql($query, $connection)
die("Ein Fehler ist bei der Datenbankabfrage aufgetreten!");
if (mysql_num_rows($result) == 1)
{
?>
<DEIN_HTML>
<?php
}
}
function_name($connection, $query);
?>
Gruß Frank: