tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
989
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    Hallo,
    ich habe mir eine Suche gebastelt diese soll Titel und Text von Newsmeldungen durchsuchen.
    Die Titel werden auch durchsucht aber der Text kommischerweise nicht bin echt am Ende auch wenn ich die LIKE Title abfrage rausnehme durchsucht er nur den Titel.

    Hier der Code
    PHP-Code:
     $newsdata mysql_query("SELECT * FROM obliv_news WHERE news_text LIKE '%$search%' OR news_title LIKE '%$search%' ORDER by news_id DESC"); 
    Geändert von EvilDivel (17.11.04 um 14:23 Uhr)
     

  2. #2
    Sicaine Tutorials.de Gastzugang
    Hm
    1. mach ma echo $newsdata und 2tens guck halt dann mal nach ob einfach die Bedinung nih zutrifft. Woran erkennst du den, dass er danach nicht "sucht"? Bin mir ziemlich sicher dass er das schon macht eben nur keine übereinstimmung da is.
     

  3. #3
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    Aber er müsste doch was finden wenn ich zb in meinem Fall "Hompage" eingebe das steht klar und deutlich im Text aber habe dann 0 Results wenn das Wort jetzt allerdings im Titel stehen würde hätte er 1 Result.

    Versteh das einfach nicht.
     

  4. #4
    Avatar von xthetronx
    xthetronx xthetronx ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    243
    Hi EvilD,

    versuch´s mal so:

    Code :
    1
    
    $newsdata = mysql_query("SELECT * FROM obliv_news WHERE news_text LIKE '%".$search."%' OR news_title LIKE '%".$search."%' ORDER by news_id DESC") '

    Wenn das nicht klappt, lass Dir einfach mal den SQL String ausgeben, also
    $newsdata ohne 'mysql_query' nur die SELECT Abfrage und dann
    echo $newsdata;
    So solltest Du sehen können, was im SQL-String enthalten ist.

    Gruß

    Torsten
     
    http://www.fallen-harlekin.de

  5. #5
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    Habs gemacht per echo kommt nichts zurück. Wenn ich allerdings nach etwas aus dem Titel suche bekomm ich:

    Resource id #29

    Also dann gibt er mir ja normal auch die Rows wieder. Er findet halt nur im news_text nichts!
     

  6. #6
    Avatar von xthetronx
    xthetronx xthetronx ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    243
    Dann schau mal nach ob in $search auch wirklich etwas drin steht und nimm mal die OR Anweisung raus.

    Wenn etwas nicht klappt, muss man am besten Stück für Stück vorgehen.
     
    http://www.fallen-harlekin.de

  7. #7
    Avatar von Ben Ben
    Ben Ben Ben Ben ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Raum FFM
    Beiträge
    1.364
    Der geänderte Codeschnippsel von x.... ändert an der sache eigentlcih nix. Kommt Insgesamt aufs gleiche raus.

    Was er aber meinte war wohl du sollst dir nicht den Rückgabewert von mysql_query, der in $newsdata enhtalten ist asugeben (da der etnweder FALSE oder eine ressource enthält), sondern den Strng mit dem Inhalt der Variablen, also etwa so

    PHP-Code:

    $sql 
    "SELECT * FROM obliv_news WHERE news_text LIKE '%$search%' OR news_title LIKE '%$search%' ORDER by news_id DESC";
    echo 
    $sql;

    $newsdata mysql_query($sql); 
    Du bist dir aber sicher, das das gesuchte Wort überall wo du es erwartest auch in Groß- und Kleinschreibung identisch ist?
     

  8. #8
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    SELECT * FROM obliv_news WHERE news_text LIKE '%screenshots%' OR news_title LIKE '%screenshots%' ORDER by news_id DESC

    Hab nach "screenshots" gesucht steht bei einer Newsmeldung im Titel bei ner anderen im Text er findet aber nur das "screenshots" aus dem Titel also problem ist das selbe er durchsucht einfach nicht den Text.
     

  9. #9
    Registriert seit
    Jan 2004
    Beiträge
    1.072
    Wie sehen denn deine Datenbank-Struktur und deine Datensätze aus?
     

  10. #10
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    Wenn das Suchform per Post oder Get versand wird, dann schreib es am besten so :

    $sql = "SELECT * FROM tabelle WHERE name like '".$_GET'['textfeldname']."'";
    $todo = mysql_query($sql);
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  11. #11
    Avatar von Mikey
    Mikey Mikey ist offline Mitglied Silber
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    68
    Die SQL-Abfrage ist völlig in Ordnung! Wenn Du phpmyadmin hast, kannst Du sie dort ja mal "zu Fuss" eingeben. Der Fehler muss m.E. wo anders liegen.

    Probier mal folgendes:

    Lass Dir mal mit echo mysql_affected_rows(); die Anzahl der Ergebnisse anzeigen => Kann diese stimmen?

    Welcher Datentyp ist news_text ? Hast Du mal probiert, die Suche nur darauf einzuschränken:

    SELECT * FROM obliv_news
    WHERE news_title LIKE '%$search%'
    ORDER by news_id DESC




     
    Menschen irren, aber nur große Menschen erkennen ihren Irrtum.
    (August von Kotzebue)

  12. #12
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    Methode mit $_POST einsetzten hab ich schon probiert.
    Was allerding seltsam ist wenn ich nur die LIKE abfrage mit news_text mache durchsucht er Trotzdem news_title.
     

  13. #13
    Avatar von Mikey
    Mikey Mikey ist offline Mitglied Silber
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    68
    Zitat Zitat von EvilDivel
    Was allerding seltsam ist wenn ich nur die LIKE abfrage mit news_text mache durchsucht er Trotzdem news_title.
    Wie kommst Du darauf bzw. wie macht sich das bemerkbar?
     
    Menschen irren, aber nur große Menschen erkennen ihren Irrtum.
    (August von Kotzebue)

  14. #14
    EvilDivel EvilDivel ist offline Rookie
    Registriert seit
    Oct 2004
    Ort
    Neuss (NRW)
    Beiträge
    8
    Ich poste mal den ganzen Code vieleicht wirds dann etwas überschaubarer

    search_news.php
    PHP-Code:
     $newsdata mysql_query("SELECT * FROM obliv_news WHERE news_text LIKE '%".$search."%' OR news_title LIKE '%".$search."%' ORDER by news_id DESC");
            while(
    $newsinfo mysql_fetch_array($newsdata)) {
          
            eval (
    "\$search_row.= \"".http_doc("search/news/search_row")."\";");
            } 
     

  15. #15
    Avatar von Mikey
    Mikey Mikey ist offline Mitglied Silber
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    68
    Und wo wertest Du $newsinfo aus?
    Da steht jedenfalls Dein jeweiliges Suchergebnis drin!
     
    Menschen irren, aber nur große Menschen erkennen ihren Irrtum.
    (August von Kotzebue)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 27.12.08, 20:32
  2. WHERE funktioniert nicht richtig
    Von sniffler im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 10.12.07, 21:57
  3. PHP funktioniert nicht richtig
    Von Dommas im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 22.09.04, 23:49
  4. Ado funktioniert nicht richtig
    Von Hoffie im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 22.03.04, 08:43
  5. mouseover funktioniert nicht richtig
    Von cherny im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 18.09.03, 22:33