kostenloser Webspace werbefrei: lima-city


suche nicht genau wählen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a************n

    ich hab mal eine kleine suchfunktion gemacht jetzt muss ich aber das wort immer moch genau eingeben und nicht nur ungefähr d.h. ich hab mal zwei sachen in die tabelle getan einmal hund einmal katze ich muss jetzt aber immer ganau katzte eingeben und nicht nur kat. wie schaffe ich es jetzt das er trozt 'unvollständigem' namen das er mir trotzdem katze auswirft?
    hier mein script
    <?php
    $nach = $_GET['nach'];
    
    $verbindung=mysql_connect('localhost', 'root', '' );
                    mysql_select_db('suche');
    
    
            
            function search($nach)
            {
                    
                     $search = "SELECT * FROM tiere WHERE name='$nach'";
                     $get = mysql_query($search);
                     while($row = mysql_fetch_object($get)) 
                    {
                            echo $row->name;
                            echo "<br>";
                    }
                    
            }       
    echo "Deine Suche nach $nach ergab folgende Treffer:<br>";
    
    search($nach);
    
    mysql_close($verbindung);
    ?>


    mfg andré


    Beitrag geändert: 9.10.2008 15:39:44 von andre-morillon
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Stichwort: LIKE
    http://sql.1keydata.com/de/sql-like.php
  4. Autor dieses Themas

    a************n

    sorry aber wenn ich das so mache kommt
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%katze%' ORDER BY name' at line 1

    wenn ich das ganze ohne funktion mache geht es aber, nur warum??

    mfg andré

    Beitrag geändert: 9.10.2008 15:33:57 von andre-morillon
  5. t*********a

    Hi,
    also erstens:
    Warum machst du dir die Mühe, dir die Suchfunktion selber zu schreiben?
    Man kann die Google-Suche so optimieren, das sowohl das Suchfeld auf deiner Seite eingebunden ist, nur deine Seite durchsucht wird und die Ergebnisse auch auf deiner Seite eingebunden werden, einfach mal googlen...

    zweitens:
    wäre es sehr schön, wenn du Hilfe willst, dass du dir wenigstens die Zeit nimmst, mal ordentliches Deutsch zu schreiben. Ich will ja nicht meckern, ich schreibe auch als sehr hastig. Aber wenn dadurch deine Frage ungenau wird ist es halt sch*

    drittens:
    du meinst, wenn du "kat" eingibst findet er dir nicht "katze"?
    weil du nicht deine Werte durchsuchst, sondern einfach nach einem BESTIMMTEN Wert in der Tabelle suchst.
    Wie wäre es, wenn du einfach den Wert in $search auf deinen gesuchten überprüfst?
    Du müsstest ja jetzt, nachdem du die Datenbankabfrage gemacht hast, den Tiernamen in $search haben. Da gibt es jetzt eine Funktion namens strcmp (such mal bei google), mit der du zwei string vergleichen kannst und auch anhand der Rückgabewerte herausbekommen kannst, ob string a in string b enthalen ist.

    Viel Spass


    Beitrag geändert: 9.10.2008 15:36:12 von tel08a-bama
  6. mach mal folgendes:
    bevor du den SQL String ausführst packst du den in eine variable und gibst den aus.
    dann Postest du die Augabe:

    $sql = "SELECT * FROM `tabelle` WHERE `Name` LIKE '%kat%'";
    echo $sql;
    mysql_query($sql)
  7. Autor dieses Themas

    a************n

    Unknown column '' in 'where clause'
    das gibt er aus(natürlcih unter anpassung des tabellen namens)



    Beitrag geändert: 9.10.2008 15:45:21 von andre-morillon

  8. Unknown column '' in 'where clause'
    das gibt er aus(natürlcih unter anpassung des tabellen namens)



    Beitrag geändert: 9.10.2008 15:45:21 von andre-morillon


    Auch die Groß-/Kleinschreibung beim Spaltennamen angepasst?
  9. Also der Fehler deutet auf in etwa so eine Query hin:


    $sql = "SELECT * FROM `tabelle` WHERE `` LIKE '%kat%'";

    Wo Der Spaltenname leer ist.
    zwischen den '' müsste nämlich der Spaltename stehen.
    Die Fehlermeldung lautet normaler Weise:
    Unknown column 'Spalte' in 'where clause'.
    Du solltest ja vor dem Ausführen der Query den SQL String ausgeben und posten.

    $sql = "SELECT * FROM `tabelle` WHERE `Name` LIKE '%kat%'";
    echo $sql;
    mysql_query($sql)


    Wie du siehst steht echo $sql vor mysql_query.

    Gruß
    xelax90


    Beitrag geändert: 10.10.2008 12:50:52 von xelax90
  10. Autor dieses Themas

    a************n

    ich habs jetzt hinbekommen
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!