Datenbank ( mySQL ) durchsuchen

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

  • Datenbank ( mySQL ) durchsuchen

    Hi ... hab nun meine Page fast fertig, das was mir nun noch fehlt ist eine Suchfunktion. Nun hab ich mir mehrere Tutorials durchgelesen und versucht eins zu basteln. Wenn ich nun in der Suche ein Stichwort eingebe ruft er das PHP auf und übergibt den wert $eingabe an das Script. Kurz darauf bekomm ich grundsätzlich die Fehlermeldung ... "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in testsuche.php on line 31"

    Line 31 =

    PHP-Code:
    $num_news mysql_num_rows($result); 
    das schlimme ist , ich kann beim besten willen nicht erkennen was daran falsch sein soll

    wäre echt nett wenn ihr euch das mal bitte anschauen könntet
    hier der Code ...

    PHP-Code:
    $server ="localhost";
    $Benutzer ="v029579";
    $Kennwort ="XXXXXXXXXX";
    $db_test ="v029579";
    $table "news";

    $verbindung mysql_connect ($server$Benutzer$Kennwort) OR DIE ("Unable to connect to database");
    mysql_select_db("v029579",$verbindung) OR DIE ("Unable to connect to database");


    $eingabe_array explode(' ',$eingabe); 
            
    $query "SELECT * FROM $table where news_text like '%$eingabe%'";
        for(
    $i=0$i<count($eingabe_array); $i++){
            
    $query .= "(news_text like '%".$eingabe_array[$i]."%' or ueberschrift like '%".$eingabe_array[$i]."%' or autor 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 ';
            }
            
    //verknüpfung der einzelnen worte mit und
        
    }

            
    $result mysql_db_query('',$query); //anfrage an die datenbank
            
    $num_news mysql_num_rows($result); //anzahl der zurückgegebenen datensätze
        
    for($i=0$i<$num_news$i++){
            
    $news_id mysql_result($result,$i,'news_id'); //abfrage der news_id von der datenbank
            
    $ueberschrift mysql_result($result,$i,'ueberschrift'); //abfrage der ueberschift
            
    $news_text mysql_result($result,$i,'news_text'); //abfrage der news
            
    $first array_slice(explode(' '$news_text), 040); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news
            
    $kurze_news join(' '$first) . '...&nbsp;'//join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt...
            
    echo '<a href="show_news.php?news_id='.$news_id.'">'.$ueberschrift.'</a><br>'//links auf die seite show_news.php
            
    echo $kurze_news.'<br><br>'//der 40 worte lange anfang des newstextes
        

    Bin für jeden Tipp dankbar

  • #2
    Re: Datenbank ( mySQL ) durchsuchen

    Original geschrieben von Cl4W
    Bin für jeden Tipp dankbar
    bitteschön:
    PHP-Code:
    $result mysql_query($query) or die(mysql_error()); 
    Kissolino.com

    Kommentar


    • #3
      danke! erstmal ... nun bekomme ich aber folgende Ausgabe ...

      "You have an error in your SQL syntax near 'table news where (news_text like '%test%' or ueberschrift like '%test%' or autor' at line 1"

      hat dies nun direkt mit meiner mySQL tabelle zu tun oder liegt es immer noch am script ?

      Kommentar


      • #4
        Original geschrieben von Cl4W
        hat dies nun direkt mit meiner mySQL tabelle zu tun oder liegt es immer noch am script ?
        deine sql-query verursacht den syntax-fehler.


        mache mal aus
        PHP-Code:
        $query "SELECT * FROM $table where news_text like '%$eingabe%'"
        einfach das hier
        PHP-Code:
        $query "SELECT * FROM $table where news_text like '%$eingabe%' AND "
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Juppa fehler ist wech ... nun tuen sich neue auf die das gefundene zurück geben sollen ?!

          PHP-Code:
                  $news_id mysql_result($result,$i,'news_id'); //abfrage der news_id von der datenbank
                  
          $ueberschrift mysql_result($result,$i,'ueberschrift'); //abfrage der ueberschift
                  
          $news_text mysql_result($result,$i,'news_text'); //abfrage der news 
          Fehler ist - Warning: mysql_result(): supplied argument is not a valid MySQL result resource on line 27,28,29 <-- genau wie vorhin

          Habe dann einfach mal versucht das "or die(mysql_error());" dahinter zu setzen ... nur dann will er garnicht mehr.

          boah hätt nicht gedacht das ne abfrage so derbst schwer sein kann Es muss doch sicherlich was geben was ich auf anhieb verstehe ...

          Kommentar


          • #6
            als erstes musst du mal verstehen, dass die abfrage kein ergebnis bringt
            ... und das abfangen => mysql_num_rows()

            dann solltest du dir die query mit echo mal ausgeben und verstehen,
            wonach eigentlich gesucht wird ... das ist nicht wirklich schlau
            Kissolino.com

            Kommentar


            • #7
              hmm tjo

              das spuckt er mir aus dem query aus wenn ich nach "test" suche "SELECT * FROM news where news_text like '%test%' AND (news_text like '%test%' or ueberschrift like '%test%' or autor like '%test%')"

              und nun kapier ich garnix mehr

              Kommentar


              • #8
                Original geschrieben von Cl4W
                hmm tjo

                das spuckt er mir aus dem query aus wenn ich nach "test" suche "SELECT * FROM news where news_text like '%test%' AND (news_text like '%test%' or ueberschrift like '%test%' or autor like '%test%')"

                und nun kapier ich garnix mehr
                sollte das nicht eher so aussehen:
                Code:
                SELECT * FROM news where news_text like '%test%' or ueberschrift like '%test%' or autor like '%test%'"
                ?
                Kissolino.com

                Kommentar

                Lädt...
                X