Ankündigung

Einklappen
Keine Ankündigung bisher.

Suchfunktion in einer Datenbank??

Einklappen

Neue Werbung 2019

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

  • Suchfunktion in einer Datenbank??

    Hallo,

    kann jemand mir sagen wie ich eine Suchfunktion durch eine mysql datenbank realieseren kann???
    gibt es vielleicht einen ausfuehrlichen tutorial dazu??? ich habe schon ueberall gesucht und bisher kaum was gefunden.

    das ist was ich bisher habe und ich bekomme immer fehlermeldung:



    <?php

    if (isset($_POST['eingabe']))
    {
    $eingabe = $_POST['eingabe'];
    $eingabe_array = explode(' ',$eingabe);

    $query = 'select * from table jokes where '; //anfang der abfrage
    for($i=0; $i<count($eingabe_array); $i++){
    $query .= "(joketext like '%".$eingabe_array[$i]."%'
    )";
    //ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verkn¨¹pft)
    if($i<count($eingabe_array)-1){
    $query .= ' and ';
    } }

    $result = mysql_db_query('jokes',$query); //anfrage an die datenbank
    $num_news = mysql_affected_rows($result); //anzahl der zur¨¹ckgegebenen datens?tze
    for($i=0; $i<$num_news; $i++){
    $joketext = mysql_result($result,$i,'joketext'); //abfrage der news_id von der datenbank
    }


    }

    ?>

    und zwar immer genau da bei mysql_affected_rows, der code stammt natürlich auch nicht von mir, hab bei einem tutorial abgeschrieben... wäre echt super wenn jemand mir helfen könnte.

    danke,

  • #2
    was kommt den genau für eine fehlermeldung??

    Kommentar


    • #3
      Laß in der Abfrage das Wort »table« weg und ersetze mysql_affected_rows() durch mysql_num_rows().

      Wenn Du nur den Inhalt von joketext brauchst, solltest Du »SELECT joketext FROM ...« verwenden.

      Das Konstrukt
      Code:
      for($i=0; $i<count($eingabe_array); $i++){ 
      $query .= "(joketext like '%".$eingabe_array[$i]."%' 
      )"; 
      //ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verkn¨¹pft) 
      if($i<count($eingabe_array)-1){ 
      $query .= ' and '; 
      } }
      kannst Du auch durch
      Code:
      foreach ($eingabe_array AS $value)
          $query .= 'joketext LIKE "%'.$value.'%" AND ';
      
      $query = substr($query, 0, -4);
      ersetzen.

      PS: Wenn du mit ODER verknüpfen willst, solltest Du auch »OR« schreiben, wodurch sich das dritte substr-Argument auf -3 ändert.

      Kommentar


      • #4
        Ich setze voraus, daß Du vorher eine Verbindung zur Datenbank aufgbaut hast:
        Code:
        mysql_connect($host, $user, $password);

        Kommentar

        Lädt...
        X