kostenloser Webspace werbefrei: lima-city


Was kann da schieflaufen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mehralsnurradio

    mehralsnurradio hat kostenlosen Webspace.

    Ich habe ein PHP-Script, welches folgendermaßen funktioniert:

    - Datenbank abrufen
    - Je nach Datenbankinhalt entweder URLs mit dem Schema https://... .png (wenn Inhalt leer) oder https://...2.png (wenn Inhalt nicht leer) abruft
    - Prüft ob unter der URL etwas gefunden wird
    - Wenn etwas gefunden wird, dann wird das in die Datenbank eingetragen und bei zukünftigen Abfragen die Variante mit der zwei oder wenn davor schon zwei dann die mit einer drei abgerufen

    Mein Problem ist:
    Etwa bei jeder 5.000sten Datenbankabfrage, welche jeweils etwa 1.000 Zeilen enthalten, passiert es, dass das Script fälschlicherweise bei 1 oder 2 Zeilen dieser Abfrage (nicht bei der gesamten Abfrage) die URL https://... .png abfragt statt die mit der Nummer, was dazu führt, dass URLs fälschlicherweise mehrmals gefunden werden.
    Die einzelnen Zeilen laufen in einer while durch.

    Woran kann das liegen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ui also da kann viel schief laufen.

    # Array falsch gemacht
    # Case Sensitiv
    # Codierung Unterschiedlich
    # Hängende DB
    # Loop falsch gemacht
    # Timeouts nicht richtig


    Ohne Code und Beispiele, wird dir hier kaum einer helfen können
  4. ohne Code nicht wirklich prognostizierbar, wo der Fehler her kommen könnte!

    Wie erfolgt eigentlich der Abruf der Datenbank? Wenn du einfach auf ein mal alles durch rattern lässt, dann kann es sein, dass die maximale Durchlaufzeit, die auf deinem Server zulässig ist überschritten wird und dadurch Fehler verursacht werden, je nach Datenumfang kann es dazu führen, dass dies nach 1000 Instanzen passiert. Wenn dann automatisch die Seite neu aufgerufen wird, dann kannst du davon ausgehen, dass der Fehler übergangen wird, ohne diesen mit zu bekommen.

    Wie lang rattert denn dein Script und wie viele Datenmengen rufst du auf? vor allem, wenn bei jedem Aufruf eine externe Datei initialisiert wird, dann belastet das zusätzlich.

    Selbst wenn davon ausgegangen wird, dass dein Array, Loop und alle Abrufe richtig strukturiert sind, gibt es über den eigentlichen Code hinweg ein erhöhtes Fehlerpotential, vor allem, was die Datenmengen angeht! Deswegen sollte man immer bei großen Datenmengen, die bearbeitet werden einen Start- und Endpunkt frstlegen, um zu vermeiden, dass ein System Timeout überschritten wird. Dafür würde sich eine "FOR" Schleife anbieten.
  5. mehralsnurradio schrieb:
    Ich habe ein PHP-Script, welches folgendermaßen funktioniert:

    - Datenbank abrufen
    - Je nach Datenbankinhalt entweder URLs mit dem Schema https://... .png (wenn Inhalt leer) oder https://...2.png (wenn Inhalt nicht leer) abruft
    - Prüft ob unter der URL etwas gefunden wird
    - Wenn etwas gefunden wird, dann wird das in die Datenbank eingetragen und bei zukünftigen Abfragen die Variante mit der zwei oder wenn davor schon zwei dann die mit einer drei abgerufen

    Mein Problem ist:
    Etwa bei jeder 5.000sten Datenbankabfrage, welche jeweils etwa 1.000 Zeilen enthalten, passiert es, dass das Script fälschlicherweise bei 1 oder 2 Zeilen dieser Abfrage (nicht bei der gesamten Abfrage) die URL https://... .png abfragt statt die mit der Nummer, was dazu führt, dass URLs fälschlicherweise mehrmals gefunden werden.
    Die einzelnen Zeilen laufen in einer while durch.

    Woran kann das liegen?


    Hi, um es mit meinem Verständnis zu formulieren:

    du machst eine Abfrage auf bestehende daten, die die Anwesenheit von objekten hinter den hinterlegten Links prüft und wenn dann was da ist, trägt er sie nochmal ein? klingt für mich nach einer Endlosschleife...

    Ich denke, ein logischer Fehler ist hier wahrscheinlicher als ein Programmierfehler.

    gehört die datenquelle dir oder versuchst du fremde inhalte durchzuindizieren? wen sie dir gehört, warum so eine Abfrage durchjodeln lassen, anstatt eine Dateiliste zu generieren, die du mit deinem Datenbestand gegenprüfst(wesentlich effizienter, 1 temporäre tabelle zu erzeugen und dann mit einem join zu verknüpfen) ist es eine Fremde Datenquelle sollte das rechtliche geprüft werden.

    Ich konnte aus deiner Schilderung auch nicht wirklich schlau werden... wie bereits tchiarcos schrieb, ohne Code und ggf. einem Ausschnitt der Datenbankstruktur nebst Beispieldaten ist es für niemanden Nachvollziehbar.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!