Überprüfung ob Datensatz schon vorhanden funktioniert nicht

Gifty43

Erfahrenes Mitglied
Hi

Ich hab wiedermal ein kleines Problem :( und hoffe, dass ihr mir wieder helfen könnt.

Ich habe einen kleinen Newscrawler gebastelt, der die News aus dem Heise RSS Newsfeed
Diesmal möchte ich überprüfen, ob ein Datensatz mit dem Newslink (Bsp: http://heise.de/news.php?id=59312) schonmal in der Datenbank vorkommt. Dazu hab ich folgendes Script gemacht:

PHP:
   $rowqry = mysql_query("SELECT newsurl FROM news WHERE newsurl='$url'"); 
   if (mysql_num_rows($rowqry) == 0) {
 	   //INSERT BEFEHL
   }else{
 	   //NICHTS
   }

Es funktioniert zwar, aber nur unter gewissen Umständen.

Beispiel:
Folgender Datensatz ist bereits vorhanden und sollte jetzt nochmal eingetragen werden:

http://heise.de/news.php?id=59312

Wenn ich nun das Script in einem neuen Browserfenster zum ersten Mal öffne, wird dieser Datensatz trotzdem eingefügt. Wenn ich danach hingegen nochmals F5 im selben Fenster drücke, wird er nicht nochmals eingefügt weil ihn das Script in der DB schonmal erkennt. Öffne ich aber wieder ein neues Internetfenster, wird der Datensatz erst wieder hineingeschrieben, und bei nochmaligem F5 drücken wird er in der DB bereits erkannt.

Ich sollte noch erwähnen, dass dieses Script in einer Schleife ist, da ein RSS Feed ja bekanntlich mehr als eine News (meist 10 oder 15, Seitenabhängig) beinhaltet. Vielleicht ist das ja der Grund für die nicht korrekte Funktionalität.

Hat jemand nen Fehler gesehen oder sonst irgendnen Tipp für mich?

Thx schonma im Voraus

Gruss
Gifty
 
Dass es manchmal "richtig funktioniert" könnte daran liegen, dass das Skript gar nicht ein zweites mal ausgeführt wird, sondern aus dem Browser-Cache kommt.
Versuche doch mal
Code:
SELECT newsurl FROM news WHERE newsurl LIKE '$url'
Bist Du Dir denn auch sicher, dass in $url der richtige Wert steht?

Gruß hpvw
 
Moin

Auch mit LIKE funktioniert das Script nicht so wie es soll.

Schonmal THX für deinen Tipp

Ich habs auchmal mit SELECT * FROM versucht, aber es geht auch net...
 
Wenn nicht, gibt es noch irgendne andere Variante zu überprüfen, ob schon ein gleicher Datensatz vorhanden ist?
 
Zurück