search function

07/30/2013 22:46 'oShet#1
Irg.wie bin ich zu doof um diese searchfunction zu erstellen..

index.php
PHP Code:
<FORM method=POST action="index.php?s=search" style="display:inline; font-family: Arial, Helvetica, sans-serif; z-index:3;">
    <
INPUT type="text" name="search"/> <INPUT type="submit" name="submit" value="GO">
</
FORM


search.php
PHP Code:
<?PHP
if(isset($_POST['search']) && $_POST['search']=="GO") {
      
$sqlCmdSearch="SELECT title FROM topmovies.movies WHERE title LIKE '%".mysql_real_escape_string($_GET['search'])."%' GROUP BY title";
      
$sqlQrySearch=mysql_query($sqlCmdSearch,$sqlHp);
      while(
$getSearch mysql_fetch_object($sqlQrySearch)) {
        echo
"<TABLE width=800>";
        echo
"<TR bgcolor=#DDDDDD>";
        echo
"<TD width=250 align=center>".$getSearch->title."</TD>";
        echo
"</TR>";
        echo
"</TABLE>";
        }
    }
?>
oder diese variante klappt auch nicht
PHP Code:
if(isset($_POST['search']) && $_POST['search']=="GO") {
if(!isset(
$_GET['search'])) {
      
$_GET['search']='';
      
$url_extension '';
    }
    else {
      
$url_extension '&search='.$_GET['search'];
    }
      
$sqlCmdSearch="SELECT title FROM topmovies.movies WHERE title LIKE '%".mysql_real_escape_string($_GET['search'])."%' GROUP BY title";
      
$sqlQrySearch=mysql_query($sqlCmdSearch,$sqlHp);
      while(
$getSearch mysql_fetch_object($sqlQrySearch)) {
        echo
"<TABLE width=800>";
        echo
"<TR bgcolor=#DDDDDD>";
        echo
"<TD width=250 align=center>".$getSearch->title."</TD>";
        echo
"</TR>";
        echo
"</TABLE>";
        }
    } 
auf der search seite erscheint einfach nichts..
07/30/2013 23:06 Blume987#2
Hast du dich schon mit der Datenbank verbunden per "mysql_connect"?
Wenn ja, funktionieren sonstige Datenbank Abfragen oder hast du nur diese?
07/30/2013 23:16 'oShet#3
Ja mit mysql wird verbunden ($sqlQrySearch=mysql_query($sqlCmdSearch,$sqlHp); )
da alles über die index datei läuft
07/30/2013 23:24 Blume987#4
Hehe, jetzt fällts mir auf:
PHP Code:
if isset($_POST['search']) && $_POST['search']=="GO"
kann garnicht gehen. Würde bedeuten, dass in der Suchzeile "GO" stehen muss, dann geht es auch.

PHP Code:
if isset($_POST['search']) && $_POST['submit']=="GO"
wäre richtig. Wobei du den zweiten Teil auch weglassen kannst ;)
07/30/2013 23:50 'oShet#5
Ich idiot :D Sollte mal anfangen weniger bier zu trinken beim arbeiten
07/31/2013 00:30 dowhile#6
Quote:
Originally Posted by oShet View Post
Ich idiot :D Sollte mal anfangen weniger bier zu trinken beim arbeiten
Wohl eher solltest du anfangen, zu lernen, Fehler selbst zu suchen ("debuggen").

Deine Beitrage sehen immer so aus, als würdest du deinen Code runter tippen und anschließend, wenn er nicht das tut, was du möchtest, ihn ins Forum zu kopieren mit der Anmerkung "geht irgendwie nicht".

Deinen Fehler hättest du so selbst finden können.

+ In den Rumpf des If-Konstrukts echo "Hello World"; schreiben
+ Hello World wird nicht ausgegeben -> Rumpf wird nicht ausgeführt -> Bedingung ist false
+ In der Bedingung ist UND -> das isset() gibt flase zurück oder der Vergleichsoperator -> beides mit echo ausgeben
+ Vergleichsoperator gibt false zurück -> $_POST['search'] ausgeben
+ Komplett falscher Wert? -> Fehler gefunden
07/31/2013 16:36 Service4All#7
Prüf doch einfach mit
PHP Code:
if (isset($_REQUEST['search']) && !empty($_REQUEST['search'])) {
  
//...

ob ein Such-String übergeben wurde!
Bei method=POST müssen außerdem noch Anführungszeichen hin, sonst ist es nicht HTML-Konform.
Also so:
<form method="post" action="">
...
</form>
07/31/2013 19:45 'oShet#8
Quote:
Originally Posted by dowhile View Post
Wohl eher solltest du anfangen, zu lernen, Fehler selbst zu suchen ("debuggen").

Deine Beitrage sehen immer so aus, als würdest du deinen Code runter tippen und anschließend, wenn er nicht das tut, was du möchtest, ihn ins Forum zu kopieren mit der Anmerkung "geht irgendwie nicht".

Deinen Fehler hättest du so selbst finden können.

+ In den Rumpf des If-Konstrukts echo "Hello World"; schreiben
+ Hello World wird nicht ausgegeben -> Rumpf wird nicht ausgeführt -> Bedingung ist false
+ In der Bedingung ist UND -> das isset() gibt flase zurück oder der Vergleichsoperator -> beides mit echo ausgeben
+ Vergleichsoperator gibt false zurück -> $_POST['search'] ausgeben
+ Komplett falscher Wert? -> Fehler gefunden
ich weiß.. War aber gestern nicht mehr ganz so dabei weil ich paar bierchen zu viel getrunken habe :X