einfaches Suchformular, es klappt aber nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • einfaches Suchformular, es klappt aber nicht

    Hallo!

    Ich benötige ein Suchformular.
    Zwar habe ich im Forum geguckt, aber nichts passendes gefunden.
    Folgendes habe ich schon versucht:

    PHP-Code:
    <?php
    $verbindung
    =mysql_connect("localhost""db""passwort");
    if (!
    $verbindung) {echo "Keine Verbindung möglich!\n";
                        exit;
    }
    $abfrage="SELECT * FROM '$branche' where '$suchwort' ";
    $erg=mysql_db_query("db",$abfrage,$verbindung);
    while (list(
    $id,$firmenname,$plz,$ort,$branche1,$beschreibung,$besonderheit,$kurz,$web)=mysql_fetch_row($erg)) {

    echo 
    "<table border=0><tr><td>&nbsp;</td></tr>";
    echo 
    "<tr><td width=200><b>".$firmenname."</b></td>
    <td width=200></td></tr>"
    ;
    echo 
    "<tr><td width=300>".$kurz."</td></tr>";
    echo 
    '<tr><td width=200><a href="essen_details.php?branche1='.$branche1.'&firmenname='.$firmenname.'">weiter</a></td><td width=200>'.$plz.' '.$ort.'</td></tr></table>';


        }
        
    mysql_close($verbindung);
    ?>
    Ein Suchwort also $suchwort soll von einem Formular übernommen werden und dann soll danach in der Datenbank gesucht werden.

    Bekomme aber folgende Fehlermeldung:
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /suche.php on line
    Line 8 ist die mit while (list.....

    Danke für jede Antwort

  • #2
    PHP-Code:
    $abfrage="SELECT * FROM '$branche' where '$suchwort' ";
    ech $abfrage;
    $erg=mysql_db_query("db",$abfrage,$verbindung); 
    was steht da?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Wenn ich die Abfrage so definiere:
      PHP-Code:
      <?php

      $verbindung
      =mysql_connect("localhost""db""passwort");
      if (!
      $verbindung) {echo "Keine Verbindung möglich!\n";
                          exit;
      }
      $abfrage="SELECT * FROM 'familie' where 'Kindermode' ";
      echo 
      $abfrage;
      $erg=mysql_db_query("db",$abfrage,$verbindung);

          
      mysql_close($verbindung);
      ?>
      dann bekomme ich : SELECT * FROM 'familie' where 'Kindermode'

      Wenn ich aber
      PHP-Code:
      <?php
      $branche
      =familie
      $suchwort
      =Kindermode

      $verbindung
      =mysql_connect("localhost""db""passwort");
      if (!
      $verbindung) {echo "Keine Verbindung möglich!\n";
                          exit;
      }
      $abfrage="SELECT * FROM '$branche' where '$suchwort' ";
      echo 
      $abfrage;
      $erg=mysql_db_query("db",$abfrage,$verbindung);

          
      mysql_close($verbindung);
      ?>
      angebe, dann bekomme ich die Fehlermeldung:
      Parse error: parse error in /suche_test.php on line 3
      das ist die mit $suchwort=Kindermode

      Kommentar


      • #4
        1. es fehlen in zeile 2 und 3 ide semikolon !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

        2. man setzt strings in ""

        greetz
        iglo

        Kommentar


        • #5
          Original geschrieben von Devil-Inside
          dann bekomme ich : SELECT * FROM 'familie' where 'Kindermode'
          und wo sagst du, in welcher spalte 'Kindermode' stehen soll?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Wenn ich $branche und $suche in "" setze, dann bekomme ich die Meldung:
            Parse error: parse error in /suche.php on line 11
            Line 11 ist die mit den o.g. String
            (Deswegen schribe ich '$branche' und '$suche' das klappt auch in anderen Skripten auch.)

            PHP-Code:
            <?php

            $branche
            =familie;
            $suche=Kindermode;

            $verbindung=mysql_connect("localhost""db""passwort");
            if (!
            $verbindung) {echo "Keine Verbindung möglich!\n";
                                exit;
            }
            $abfrage="SELECT * FROM '$branche' where '$suche' ";
            $erg=mysql_db_query("db",$abfrage,$verbindung);
            while (list(
            $id,$firmenname,$plz,$ort,$branche1,$beschreibung,$besonderheit,$kurz,$web)=mysql_fetch_row($erg)) {

            echo 
            "<table border=0><tr><td>&nbsp;</td></tr>";
            echo 
            "<tr><td width=200><b>".$firmenname."</b></td>
            <td width=200></td></tr>"
            ;
            echo 
            "<tr><td width=300>".$kurz."</td></tr>";
            echo 
            '<tr><td width=200><a href="familie_details.php?branche1='.$branche1.'&firmenname='.$firmenname.'">weiter</a></td><td width=200>'.$plz.' '.$ort.'</td></tr></table>';


                }
                
            mysql_close($verbindung);
            ?>
            Jetzt habe ich Semikolon gesetzt und trotzdem bekomme ich die Fehlermeldung in der Zeile mit while...
            Also muß diese Zeile falsch sein.

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              und wo sagst du, in welcher spalte 'Kindermode' stehen soll?
              SELECT * FROM 'branche' WHERE 'Kindermode' ist kein gültiges sql-statement, du brauchst schon eine spalte, in der nach Kindermode gesucht werden soll

              SELECT * FROM branche WHERE Typ_Mode='Kindermode' so zum beispiel
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ich habe das jetzt geändert.
                Es sieht so aus:
                PHP-Code:
                <?php

                $branche
                =familie;
                $suche=Kindermode;

                $verbindung=mysql_connect("localhost""db""passwort");
                if (!
                $verbindung) {echo "Keine Verbindung möglich!\n";
                                    exit;
                }
                $abfrage="SELECT * FROM '$branche' where beschreibung='$suche' ";
                $erg=mysql_db_query("db",$abfrage,$verbindung);
                while  (list(
                $id,$firmenname,$plz,$ort,$branche1,$beschreibung,$besonderheit,$kurz,$web)=mysql_fetch_row($erg)) {

                echo 
                "<table border=0><tr><td>&nbsp;</td></tr>";
                echo 
                "<tr><td width=200><b>".$firmenname."</b></td>
                <td width=200></td></tr>"
                ;
                echo 
                "<tr><td width=300>".$kurz."</td></tr>";
                echo 
                '<tr><td width=200><a href="familie_details.php?branche1='.$branche1.'&firmenname='.$firmenname.'">weiter</a></td><td width=200>'.$plz.' '.$ort.'</td></tr></table>';


                    }
                    
                mysql_close($verbindung);
                ?>
                Ich bekomme aber immer noch den selben Fehler, egal ob ich in der SELECT-Zeile etwas änder oder nicht.

                Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
                Das Probelm muß also in dieser Zeile sein. ( das ist die mit while....)

                Kommentar


                • #9
                  änder die ersten zeilen mal in:
                  PHP-Code:
                  $branche="familie";
                  $suche="Kindermode"
                  siehe post von kapitaeniglo ^^
                  Kissolino.com

                  Kommentar


                  • #10
                    nein, das geht auch nicht.

                    Die Fehlermeldung bleibt:
                    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

                    Wie schon geschrieben, es liegt in der Zeile mit while...

                    Es ist egal was ich in der SELECT änder bzw. schreibe, ich bekomme die gleiche Fehlermeldung. Es muß also dort etwas geändert werden.

                    Kommentar


                    • #11
                      Original geschrieben von Devil-Inside
                      Wie schon geschrieben, es liegt in der Zeile mit while...
                      dann lass dir erstmal die query mit echo ausgeben, ob die variablen auch korrekt gefüllt sind.

                      das or die(mysql_error()) nach dem mysql_db_query vermisse ich auch noch.

                      und probiere die abfrage erstmal in phpmyadmin aus, ob die überhaupt ein ergebnis zurückliefert oder vielleicht leer ist.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Habe folgendes unter PHPMyAdmin versucht:
                        PHP-Code:
                        SELECT FROM `familieWHERE beschreibung LIKE '%mode%' 
                        das klappt dort auch, aber in mein Skript eingebaut, läuft es nicht.

                        Ich bekomme immer noch den Fehler:
                        Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

                        Kommentar


                        • #13
                          nochmal die frage: wie sieht die fertig zusammengesetzte query aus, wenn du sie mit echo ausgibst?

                          sind da die variablen teile wirklich mit den richtigen werten gefüllt?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            PHP-Code:
                            $abfrage="SELECT * FROM ".$branche." where beschreibung='$suche'";
                            echo 
                            $abfrage;

                            $erg=mysql_db_query("db",$abfrage,$verbindung) or die(mysql_error()); 
                            ändere es mal so ab und poste mal die ausgaben.
                            Kissolino.com

                            Kommentar


                            • #15
                              ok!
                              Das habe ich gemacht.
                              Die Variablen sind:

                              $branche="familie";
                              $suche="mode";

                              Die Ausgabe lautet:

                              SELECT * FROM familie where beschreibung='mode' $

                              Kommentar

                              Lädt...
                              X