LIKE funktioniert nicht richtig!

EvilDivel

Grünschnabel
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:
 $newsdata = mysql_query("SELECT * FROM obliv_news WHERE news_text LIKE '%$search%' OR news_title LIKE '%$search%' ORDER by news_id DESC");
 
Zuletzt bearbeitet:
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.
 
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.
 
Hi EvilD,

versuch´s mal so:

Code:
$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
 
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!
 
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.
 
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:
$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?
 
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.
 
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);
 
Zurück