Suchen in DB - finde Fehler nicht

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

  • Suchen in DB - finde Fehler nicht

    Hallo wieder der Newbie hier.

    ich eine Musik-Datenbank anglegt und möchte jetzt wenn ich einen Begriff
    eingebe, das man mir die Lieder mit dem entsprechenden Wort ausgibt.

    Beispiel: In der Suchmaske gebe ich "Mode" ein, dann sollen die spalten
    interpret und titel in der Datenbank durchsucht werden und die Ausgabe
    soll sein:

    Depeche Mode - Master und Servant.

    Das sollte auch gehen wenn ich "Master eingebe, dann sollte er mir das selbe Ergebnis zeigen.

    Ich habe aber das Problem, egal was ich eingebe , es werden immer alle Datensätzte ausgegeben.

    Hier die Maske des Suchformulars:
    PHP-Code:
    <table border="5" bgcolor='#0000cc' align="center" width="670">
    <
    tr>
    <
    td width="670" bgcolor='#FFFFFF'>
    <
    center>
    <
    br>
    <
    font face="VERDANA,ARIAL,HELVETICA" color="#0000cc" font size="+1"><b>
    Suchbegriff eingeben:</b></font><br>
    </
    center>
    <
    center>
    <
    form name="form1" method="get" action="suche.php"
    <
    input type="text" size="30" name="suchstr"><br><br>
    <
    input type="submit" name="Abschicken" value="Abschicken"
    </
    form
    </
    center>
    </
    td>
    </
    tr>
    </
    table
    und dieses steht in der suche.php drin:
    PHP-Code:
    <?php 

    $verbindung 
    mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw");
    mysql_select_db($db,$verbindung); 
    $result=mysql_query("SELECT * FROM musik WHERE interpret LIKE
     '%
    $suchstr%' OR titel LIKE '%$suchstr%' ORDER BY interpret",$verbindung);
    {
    echo 
    "<table width='800' align='center' border='0' cellpadding='2' cellspacing='2'>\n";
    while (
    $r=mysql_fetch_row($result))
    {
    echo 
    '<tr>
    <td><b>'
    ,$r[0],'</b></font></td>
    <td><b>'
    ,$r[2],'</b></font></td>
    <td><b>'
    ,$r[3],'</b></font></td>
    <td><b>'
    ,$r[4],'</b></font></td>

    </tr>'
    ;
    }
    echo 
    "</table>\n"
    }
    ?>
    kann mir einer weiterhelfen wo ich hier einen Fehler gemacht habe.

    Thanks im vorraus!

    mfg Oh_Weh
    Jeder stand mal am Anfang und hat klein angefangen. Ich stehe dort und möchte lernen.

  • #2
    PHP-Code:
    echo $sql="SELECT * FROM musik WHERE interpret LIKE

     '%
    $suchstr%' OR titel LIKE '%$suchstr%' ORDER BY interpret";
    $result=mysql_query($sql,$verbindung); 
    ausgabe?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      besser noch so...

      PHP-Code:
      echo $sql "SELECT * FROM musik
                  WHERE
                      interpret LIKE '%"
      .$suchstr."%' OR
                      titel LIKE '%"
      .$suchstr."%'
                  ORDER BY interpret"
      ;
      $result=mysql_query($sql,$verbindung) or die(mysql_error()); 
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Ausgabe

        Hallo

        zuerst kommt die Zeile
        PHP-Code:
        SELECT FROM musik WHERE interpret LIKE '%%' OR titel LIKE '%%' ORDER BY interpret 
        und danne werden alle datensätze aufgelistet

        mfg oh_weh
        Jeder stand mal am Anfang und hat klein angefangen. Ich stehe dort und möchte lernen.

        Kommentar


        • #5
          schreibe mal vor das ganze das hier.

          PHP-Code:
          $suchstr = isset($_GET['suchstr']) ? $_GET['suchstr'] : '-------'
          bzw. wenn du mal auf POST umsteigen solltest.

          PHP-Code:
          $suchstr = isset($_POST['suchstr']) ? $_POST['suchstr'] : '-------'
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            dann isses kein wunder, dass er alle datensätze ausgibt, die bedingungen erfüllt ja jeder

            schreib vor das mysql_query mal
            PHP-Code:
            $suchstr=$_GET['suchstr']; 
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              schreib vor das mysql_query mal
              vergiss happy's letzen post.. nimm meinen ...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Danke, super

                Hallo,

                Danke, funzt, aber wo lag denn jetzt mein Fehler?

                mfg oh_weh
                Jeder stand mal am Anfang und hat klein angefangen. Ich stehe dort und möchte lernen.

                Kommentar


                • #9


                  aber recht hat, meins wäre die quick'n'dirty lösung
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Habe auch Deinen genommen!!!!!!!!!!!
                    Jeder stand mal am Anfang und hat klein angefangen. Ich stehe dort und möchte lernen.

                    Kommentar


                    • #11
                      Re: Danke, super

                      Original geschrieben von mrhappiness
                      aber recht hat, meins wäre die quick'n'dirty lösung
                      siehte ..

                      Original geschrieben von oh_weh
                      Danke, funzt, aber wo lag denn jetzt mein Fehler?
                      du hast register_globals auf off. daher MUSST du über das _GET und/oder _POST array gehen.

                      ist auch viel sauberer so...

                      Original geschrieben von oh_weh
                      Habe auch Deinen genommen!!!!!!!!!!!

                      aber ein ! hätte auch gereicht. ein . vielleicht auch.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar

                      Lädt...
                      X