ERLEDIGT
NEIN
NEIN
ANTWORTEN
16
16
ZUGRIFFE
989
989
EMPFEHLEN
-
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)
-
16.11.04 23:47 #2Sicaine 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.
-
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 :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ß
Torstenhttp://www.fallen-harlekin.de
-
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.http://www.fallen-harlekin.de
-
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
Du bist dir aber sicher, das das gesuchte Wort überall wo du es erwartest auch in Groß- und Kleinschreibung identisch ist?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);
-
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.
-
17.11.04 14:29 #9
- Registriert seit
- Jan 2004
- Beiträge
- 1.072
Wie sehen denn deine Datenbank-Struktur und deine Datensätze aus?
-
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.
-
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)
-
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.
-
Wie kommst Du darauf bzw. wie macht sich das bemerkbar?
Zitat von EvilDivel
Menschen irren, aber nur große Menschen erkennen ihren Irrtum.
(August von Kotzebue)
-
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")."\";");
}
-
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
-
AJAX funktioniert nicht richtig, readysate funktion wird nicht ausgeführt
Von Biergamasda im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 27.12.08, 20:32 -
WHERE funktioniert nicht richtig
Von sniffler im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 10.12.07, 21:57 -
PHP funktioniert nicht richtig
Von Dommas im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 22.09.04, 23:49 -
Ado funktioniert nicht richtig
Von Hoffie im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 22.03.04, 08:43 -
mouseover funktioniert nicht richtig
Von cherny im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 18.09.03, 22:33





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren