Live suche mit php

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Live suche mit php

    Hallo,

    ich will zum Suchbegriff: USA aus der Datenbank mit reinem PHP live änliche Inhalte anzeigen. Leider funktioniert es nicht. Es werden alle Datensätze aus dem Feld: name ausgegeben. Ich will aber nur max. 10 Treffer anzeigen. Was mache ich falsch?

    PHP-Quellcode

    1. <html>
    2. <head>
    3. <title></title>
    4. </head>
    5. <body>
    6. <h2>Suchbegriff: USA</h2>
    7. <input type="text" value="USA">
    8. <br />
    9. <div id="results">Änliches gefunden:
    10. <?php
    11. mysql_connect("localhost","web123","123456") or die(mysql_error());
    12. mysql_select_db("usr_web112_3") or die(mysql_error());
    13. $partialStates = $_POST['partialState'];
    14. $states = mysql_query("SELECT name FROM states WHERE name LIKE '%$partialStates%'");
    15. while($state = mysql_fetch_array($states)){
    16. echo "<div>".$state['name']."</div>";
    17. }
    18. ?>
    19. </div>
    20. </body>
    21. </html>
    Alles anzeigen



    Datenbank

    Quellcode

    1. CREATE TABLE IF NOT EXISTS `states` (
    2. `id` int(11) NOT NULL AUTO_INCREMENT,
    3. `abbr` varchar(200) NOT NULL,
    4. `name` varchar(500) NOT NULL,
    5. PRIMARY KEY (`id`)
    6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
    7. INSERT INTO `states` (`id`, `abbr`, `name`) VALUES
    8. (1, 'ER', 'Berlin'),
    9. (2, 'AS', 'ALASKA'),
    10. (3, 'KU', 'USA'),
    11. (4, 'NK', 'KANADA');
    Alles anzeigen
  • Exi schrieb:

    Achja außerdem solltest du den die Variable $partialStates mind. noch mit mysql_real_escape_string() absichern.


    Das Limit funktioniert jetzt super, aber $partialStates mit mysql_real_escape_string() nicht. Warum?

    Quellcode

    1. <?php
    2. mysql_connect("localhost","web123","123456") or die(mysql_error());
    3. mysql_select_db("usr_web112_3") or die(mysql_error());
    4. $partialStates = $_POST['partialState'];
    5. $states = mysql_query("SELECT name FROM states WHERE name LIKE '%$partialStates%' LIMIT 10");
    6. while($state = mysql_fetch_array($states)){
    7. echo "<div>".$state['name']."</div>";
    8. }
    9. $query = sprintf("SELECT name FROM states WHERE name='%s'",
    10. mysql_real_escape_string($partialStates));
    11. ?>
    Alles anzeigen
  • Torben Brodt schrieb:


    Was funktioniert nicht? Und meinst du nun das Query aus Zeile 7 oder 12?
    Auf jeden Fall gehört das % Symbol in die Variable, die du escapen möchtest.


    Jetzt geht. Danke.

    Noch eine Frage.
    ich will, dass mein Suchformular automatisch Anfrage sendet (soballd <?php the_search_test(); ?> etwas ausgibt), also ohne auf das Submit-Button zu klicken.

    Hast du eine Idee?


    <form action="live1.php" method="post">
    <input type="text" name="live" value="<?php the_search_test(); ?>" id="live">
    <input type="submit">
    </form>