kostenloser Webspace werbefrei: lima-city


Datenbank nach stichwörtern durchsuchen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Hallo!
    ICh wollte einmal fragen,ob es geht,eine ref="/tag/datenbank">Datenbank nach stihwörtern zu durchsuchen,so was wie eine suchfunktion!
    Also ich mene Damit,er soll eine Spalte abfragen,in der lauter durch Komma getrennte begriffe stehen,wenn man dann zB nach Uhr sucht und in deiner Der Spalten steht Hose,Uhr,Taschenlampe[...],soll er die Gesammte Spalte anzeigen,und auch nachfolgende Spalten wo auch Uhr haben,soetwas wie eine Suchfunktion,nur mit einer Datenbank,und das von extern
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Du könntest es mal mit LIKE versuchen

    Also:
    SELECT * FROM xy WHERE spalte LIKE '%Uhr%'


    Das Prozentzeichen gibt an, dass links, bzw, rechts von Uhr noch was stehen darf und es trotzdem ausgegeben wird.

    Edit: Sehe grad, julian101 war schneller....

    Beitrag zuletzt geändert: 23.12.2009 18:40:42 von rnitsche
  4. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Das Tutorial versteh ich nicht so ganz un bei Like gibt r mir einen Feher in Zeile 107 an:
    Hier die Zeieln 100 bis 113:
    $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
    
    
    
    $abfrage = "SELECT * FROM Idarus WHERE Link LIKE '%$Suche%', $eintraege_pro_seite";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
        {
        $Beschreibung = $row->Beschreibung;
        $Beschreibung = htmlentities($Beschreibung);
        $text = nl2br($Beschreibung);
        $Titel = $row->Titel;
        $Link = $row->Link;
        $Seite = $row->Seite;

  5. Du hast einen Fehler in der Abfrage, da Du $eintraege_pro_seite eigentlich als Limit verwenden willst. Also kein Komma hinter like.

    Probier es mal so:

    "SELECT * FROM Idarus WHERE Link LIKE '%$Suche%' LIMIT $start, $eintraege_pro_seite";


    Beitrag zuletzt geändert: 23.12.2009 19:09:26 von rnitsche
  6. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Ok,ich hab das Tutorial doch mal versucht,doch es kommt nichts,wenn ich versuche zu suchen!

    Hier der Code:
    <font color="#0000FF" size="20">G</font><font color="#FF0000" size="40">h</font><font color="#0000FF" size="20">eim</font><font color="#FF0000" >BETA</font>
    <h3> Search Engine </h3>
    <form name="form1" method="post" action="<? $PHP_SELF ?>">
    Suchbegriff:
     <input type="text" class="input" name="Link" size="40">
     <input type="submit" name="Suchen" class="input" value="Suchen"><br><br>
    </form>
    <div style="background-color: #FF3535;border-top: dashed;border-color: #000000">
    <a href="">Ihre Seite bei Geheim  ?</a>
    </div>
    
    <?php
    
    $link = mysql_connect("mysql.lima-city.de","***","***") or die ("Keine Verbindung moeglich<br />Server m&ouml;glicherwei&szlig;e offline!");
    mysql_select_db("db_159226_1") or die ("Die Datenbank existiert nicht");
    
    
    $keywords = $_POST["Link"];
    
    $association = 'AND';
    
    $keywords = explode(" ",$keywords);
    
    $query = array();
    
    foreach($keywords as $keyword) {
        $query[] = "(   `Link`     LIKE '%".$keyword."%'
                    OR  `Beschreibung`    LIKE '%".$keyword."%'
                    OR  `Seite`    LIKE '%".$keyword."%'
                    OR  `Titel`    LIKE '%".$keyword."%' )
                    ";
    }
    
    $query = implode("\n ".$association." ",$query);
    
    $sql = "
        SELECT  *
        FROM    `Idarus`
        WHERE   ".$query." ";
    
    $res = mysql_query($sql);
    
    if (!$res) {
        /**
         * Diese Zeilen geben das SQL-Statement in recht lesbarer Form aus.
         */
        print '<pre>';
        print $sql;
        print '</pre>';
        /**
         * E_USER_ERROR führt zum Abbruch des Scripts.
         * E_USER_NOTICE und E_USER_WARNING, lassen das Script weiterlaufen
         */
        trigger_error('Datenbankanfrage schlug fehl: '.mysql_error(), E_USER_ERROR);
    } else {
        /**
         * Hier die Routinen zum Auslesen der Suchergebnisse einfügen.
         */
    }
    ?>


    Und hier mal ein Beispiel in der Spalte "Link":
    PHP,mySQL,Tutorial,Hilfe,Gästebuch,Buchtipps,Hilfe..

    Edit
    Problem gelößt!


    Beitrag zuletzt geändert: 23.12.2009 19:42:39 von gaestefun
  7. 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!