Datenbankprobleme - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Patrick (107 Beiträge) am Donnerstag, 6.Oktober.2005, 01:44.
    Datenbankprobleme

      Ich habe ein Datenbank-Problem, das ich nur schwer beschreiben kann. Vielleicht hat ja jemand etwas Ähnliches mal gehabt und weiß, wie ich damit umgehen sollte. Also:

      Ich protokolliere alle Referer der letzten 24 Stunden in einer eigenen Datenbank "Protokoll" (zusammen mit anderen Daten der Zugriffe). Nach mindestens 24 Stunden werden sämtliche Referer ausgelesen und auf die Form "http://xyz.abcde.jj/" gebracht (also alles andere abgeschnitten). Dann wird überprüft, ob dieser Referer schon in einer zweiten Datenbank namens "Referer" enthalten ist. Wenn nein, wird er eingetragen. Wenn ja, wird der Zähler in dieser Datenbank "Referer" um eins erhöht. Das Ergebnis sollte also sein, dass alle 24 Stunden die Zahl der Referer aktualisiert wird und ich weiß, von welcher Seite wie oft auf meine Seite zugegriffen wurde.

      Das klappt auch alles wunderbar - theoretisch.
      Ich habe zu einem bestimmten Zeitpunkt, an dem die (zunächst leere) Referer-Datenbank aktualisiert wird, insgesamt von neun verschiedenen Webseiten Zugriffe in jeweils unterschiedlicher Anzahl. Bei einer leeren Datenbank müssten also alle neun als Referer eingetragen werden (sie sind ja noch nicht drin). Aber: Manchmal werden neun dieser Referer eingetragen, manchmal unter sonst gleichen Bedingungen nur acht (dann fehlen entweder der Letzte oder der Vorletzte)! Ich habe nun überprüft, wann im Programmablauf der Fehler passiert, indem ich permanent, nach jedem Zugriff auf die Datenbank und bei jedem Schritt, mir die komplette Datenbank anzeigen lasse. Da finde ich keinen Fehler: alle neun Referer werden ordentlich eingetragen, am Ende des Programmablaufs wie auch zwischendurch ergibt die Abfrage die korrekte Zahl an Datensätzen mit korrekten Inhalten. Wenn ich danach aber (über eine andere Page oder über die Baseportal-Umgebung) in die Datenbank sehe, fehlt in acht von zehn Fällen ein Datensatz!


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Patrick (107 Beiträge) am Donnerstag, 6.Oktober.2005, 01:44.
    Datenbankprobleme

      Ich habe ein Datenbank-Problem, das ich nur schwer beschreiben kann. Vielleicht hat ja jemand etwas Ähnliches mal gehabt und weiß, wie ich damit umgehen sollte. Also:

      Ich protokolliere alle Referer der letzten 24 Stunden in einer eigenen Datenbank "Protokoll" (zusammen mit anderen Daten der Zugriffe). Nach mindestens 24 Stunden werden sämtliche Referer ausgelesen und auf die Form "http://xyz.abcde.jj/" gebracht (also alles andere abgeschnitten). Dann wird überprüft, ob dieser Referer schon in einer zweiten Datenbank namens "Referer" enthalten ist. Wenn nein, wird er eingetragen. Wenn ja, wird der Zähler in dieser Datenbank "Referer" um eins erhöht. Das Ergebnis sollte also sein, dass alle 24 Stunden die Zahl der Referer aktualisiert wird und ich weiß, von welcher Seite wie oft auf meine Seite zugegriffen wurde.

      Das klappt auch alles wunderbar - theoretisch.
      Ich habe zu einem bestimmten Zeitpunkt, an dem die (zunächst leere) Referer-Datenbank aktualisiert wird, insgesamt von neun verschiedenen Webseiten Zugriffe in jeweils unterschiedlicher Anzahl. Bei einer leeren Datenbank müssten also alle neun als Referer eingetragen werden (sie sind ja noch nicht drin). Aber: Manchmal werden neun dieser Referer eingetragen, manchmal unter sonst gleichen Bedingungen nur acht (dann fehlen entweder der Letzte oder der Vorletzte)! Ich habe nun überprüft, wann im Programmablauf der Fehler passiert, indem ich permanent, nach jedem Zugriff auf die Datenbank und bei jedem Schritt, mir die komplette Datenbank anzeigen lasse. Da finde ich keinen Fehler: alle neun Referer werden ordentlich eingetragen, am Ende des Programmablaufs wie auch zwischendurch ergibt die Abfrage die korrekte Zahl an Datensätzen mit korrekten Inhalten. Wenn ich danach aber (über eine andere Page oder über die Baseportal-Umgebung) in die Datenbank sehe, fehlt in acht von zehn Fällen ein Datensatz!

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 6.Oktober.2005, 17:50.
    Re: Datenbankprobleme

      Das ist ohne Code(ausschnitte) schwer zu sagen...

     Antworten

    Beitrag von Patrick (107 Beiträge) am Freitag, 7.Oktober.2005, 00:40.
    Re: Datenbankprobleme

      Hier der Quellcode:


      <loop db=Referer sort=-Datum range=0,1 code=perl>
      $dat=$Datum;
      </loop>
      

      <perl>
      if (datum($dat, "intern") lt datum(jetzt-1, "intern")) {
      $nix="";
      get "Datum==*", "Protokoll";
      while(get_next("Protokoll"))
      {
      if ($Referer ne $nix) {
      $inda=index($Referer,"//");
      $inda=$inda+2;
      $indb=substr($Referer,$inda,100);
      $indc=index($indb,"/");
      $ausz=substr($Referer,0,$inda+$indc)."/";
      $Referer="";
      if (index ($ausz,"http://stattweb.") eq 0) {$ausz=""};
      if (index ($ausz,"http://www.stattweb.") eq 0) {$ausz=""};
      if ($ausz ne $nix) {
      get "Referer==$ausz", "Referer";
      if ($Referer ne $nix) {
      $Referer="";
      $zaehl=$Zaehler+1;
      mod "Referer==!$ausz", ["Datum", "jetzt", "Zaehler", "$zaehl"], "Referer";
      }
      get "Referer==$ausz", "Referer";
      if ($Referer eq $nix) { put ["Referer", "$ausz", "Zaehler", "1", "Datum", "jetzt"], "Referer"; }
      }}}}}
      

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!