tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
494
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Gifty43 Gifty43 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    115
    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-Code:
       $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
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    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 :
    1
    
    SELECT newsurl FROM news WHERE newsurl LIKE '$url'
    Bist Du Dir denn auch sicher, dass in $url der richtige Wert steht?

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  3. #3
    Gifty43 Gifty43 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    115
    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...
     

  4. #4
    Gifty43 Gifty43 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    115
    Ich habs immernochnet hingekriegt, hat nicht jemand nochnen Tipp?
     

  5. #5
    Gifty43 Gifty43 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    115
    Wenn nicht, gibt es noch irgendne andere Variante zu überprüfen, ob schon ein gleicher Datensatz vorhanden ist?
     

Ähnliche Themen

  1. [MySQL] Datensatz eintragen, wenn nicht vorhanden
    Von Steusi im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 03.11.10, 15:18
  2. Datensatz schon vorhanden überprüfen
    Von Lobedan im Forum PHP
    Antworten: 2
    Letzter Beitrag: 14.06.09, 04:30
  3. INSERT aber nur wenn Datensatz noch nicht vorhanden ist.
    Von mafin im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 17.12.08, 10:41
  4. Antworten: 13
    Letzter Beitrag: 05.12.08, 20:10
  5. Antworten: 5
    Letzter Beitrag: 08.12.03, 23:13