einfache suchfunktion mit php und mysql funzt irgendwie nicht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • einfache suchfunktion mit php und mysql funzt irgendwie nicht

    hallo leute,

    habe von einer homepage mit php-beispielen folgendes rauskopiert:
    PHP Code:
    <?php

    if (isset($_POST['submit'])) {
        
        
    $c mysql_connect('localhost''root''') or die(mysql_error());
        
    mysql_select_db('quotes') or die(mysql_error());
        
        
    $sql "SELECT id, text FROM test WHERE text LIKE '%"
                
    mysql_real_escape_string($_POST['suchtext']) . "%'
                ORDER BY id ASC"
    ;
                
        
    $query mysql_query($sql) or die(mysql_error());
        
        if(
    $treffer mysql_num_rows($query) > 0) {
            echo 
    'Es gab <strong>' $treffer '</strong> Treffer<br>';
        }
        
        while(
    $r mysql_fetch_array($queryMYSQL_ASSOC)) {
            
            echo 
    'ID ' $r['id'] . ': ' $r['text'] . '<br>';
            
        }
        
    }

    ?>

    <form name="textsuche" method="post"
        action="<?php echo $_SERVER['PHP_SELF']; ?>">

    <INPUT TYPE="text" MAXLENGTH="30" SIZE="30" NAME="suchtext">
    <INPUT TYPE="submit" VALUE="Suchen" name="submit">

    </form>
    habe meine daten eingefügt:
    meine page: myhomepage.de (nicht wirklich!)
    datenbank acd4321
    tabelle table123
    spalte1 id
    spalte2 text
    passwort apfelsaft
    und so sieht mein suchen.php-file dann aus:
    PHP Code:
    <?php

    if (isset($_POST['submit'])) {
        
        
    $c mysql_connect('acd4321.myhomepage.de''acd4321''apfelsaft') or die(mysql_error());
        
    mysql_select_db('quotes') or die(mysql_error());
        
        
    $sql "SELECT id, text FROM table123 WHERE text LIKE '%suchtext%"
                
    mysql_real_escape_string($_POST['suchtext']) . "%suchtext%'
                ORDER BY id ASC"
    ;
                
        
    $query mysql_query($sql) or die(mysql_error());
        
        if(
    $treffer mysql_num_rows($query) > 0) {
            echo 
    'Es gab <strong>' $treffer '</strong> Treffer<br>';
        }
        
        while(
    $r mysql_fetch_array($queryMYSQL_ASSOC)) {
            
            echo 
    'ID ' $r['id'] . ': ' $r['text'] . '<br>';
            
        }
        
    }

    ?>

    <form name="textsuche" method="post"
        action="<?php echo $_SERVER['PHP_SELF']; ?>">

    <INPUT TYPE="text" MAXLENGTH="30" SIZE="30" NAME="suchtext">
    <INPUT TYPE="submit" VALUE="Suchen" name="submit">

    </form>
    ich dachte jetzt, ich geb mal in das suchfeld "odu" ein, um den datensatz zu finden, der das wort halloduda enthält. da ist ja der ausdruck mit den zwei prozentzeichen links und rechts (%...%) richtig, oder? naja, die ergebnisse, bzw. der gesuchte datensatz (id, text) soll dann direkt darunter erscheinen.

    mein problem: wenn ich jetzt mal testweise eine eingabe mache und auf suchen-button klicke, kommt meine index.php

    kann mir jemand helfen oder einen link für ein tutorial geben?
    wahrscheinlich ist es wieder ein kleiner fehler, ich kenn mich halt nicht aus, benötige aber eine lösung die funzt.

  • #2
    du hast beim "kopieren" die sql-query verändert.

    Comment


    • #3
      Original geschrieben von penizillin
      du hast beim "kopieren" die sql-query verändert.
      wie meinst du das? was soll denn an der sql-query verändert sein??

      habe alles verglichen und da ist nichts verändert, außer jenes, was ich ergänzt hab bezüglich meiner sql-verbindung.

      Comment


      • #4
        aus
        PHP Code:
            $sql "SELECT id, text FROM test WHERE text LIKE '%"
                    
        mysql_real_escape_string($_POST['suchtext']) . "%'
                    ORDER BY id ASC"

        wurde
        PHP Code:
            $sql "SELECT id, text FROM table123 WHERE text LIKE '%suchtext%"
                    
        mysql_real_escape_string($_POST['suchtext']) . "%suchtext%'
                    ORDER BY id ASC"

        Comment


        • #5
          Hast du dein Formular in deine Index includet ?

          In diesem Fall ist das richtig das du auf deiner Index landest.

          <form name="textsuche" method="post"
          action="<?php echo $_SERVER['PHP_SELF']; ?>">

          PHP_SELF zeigt nicht auf dein Formular sondern auf die Aufgerufene Seite.

          Trag bei action mal suchen.php ein anstatt $_SERVER['PHP_SELF']
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Comment


          • #6


            @penizillin und @hhcm:

            danke, jetzt funktionierts! projekt endlich abgeschlossen!!!
            ich sollte mir mal ne php- und mysql-referenz als buch zulegen.

            Grüße
            Stefan

            Comment

            Working...
            X