Beitrag von mk (966 Beiträge) am Dienstag, 21.Dezember.2004, 13:18.
was ist los?
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 21.Dezember.2004, 14:24.
Re: was ist los?
Kein Wunder, Du hast eine klassische Endlosschleife gebaut. Ich bin so frei die Schleife hier mal zu posten (ist wirklich lehrreich, ich hoffe andere passen auch auf ;-) ):
for($i=0; $i<7;)
{
do
{
get "Id==? Datum>-14", "datenbank";
} while (index($ids, "$_id,")>=0);
out "...";
$ids.="$_id,";
$i++;
}
Was passiert, wenn in den letzten 14 Tagen nicht genügend Neues in die Datenbank eingetragen wurde? Richtig: Er findet keine 7 Datenätze, wie gewünscht, sondern immer wieder dieselben, die dann alle in $ids drinstehen, folglich wird die do...while-Schleife nie verlassen... Böse Server-Belastung!
Aus dem Grund ging das auch ne Weile und dann -gerade eben ohne Änderung- plötzlich nicht mehr...
So, was Du eigentlich willst, ist:
get "Datum>-14 sort=? range=0,7", "datenbank";
while(get_next "datenbank");
{
out "...";
}
Das ist schneller, weil Du die Datenbank das Holen der richtigen Datensätze machen lässt und es kann nichts schiefgehen, weil keine potentielle Endlosschleife drin ist. Und kürzer und schöner ist es auch ;-)
Du hast das an einigen Stellen in Deiner Seite, vielleicht auch noch in anderen Seiten, bitte schau das mal durch!!
PRINZIPIELL (für alle was zum Lernen ;-) ):
Bei Schleifen die keine 100% eindeutige Abbruchbedingung haben, IMMER einen Zähler mitlaufen lassen, der dann zur Not stoppt... Bei obigen Beispiel, wäre das:
do
{
get "Id==? Datum>-14", "datenbank";
} while (index($ids, "$_id,")>=0 && $stop_cnt++<10);
(Bzw. gleich ne for-Schleife, bzw. natürlich in dem Fall sowieso die obige Lösung)
Hoffe, es hilft ein bisschen was ;-)
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.Dezember.2004, 14:49.
Re: was ist los?
nenne die Seite bitte um, ich komme nicht ran.
Da blokiert einer den Server ha ha
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 21.Dezember.2004, 14:55.
Re: was ist los?
Hi,
Habe mich schon gewundert. Konnte zwischen den Templateaufrufen schon das Mittagessen zubereiten.;-)
Claus
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.Dezember.2004, 20:15.
Re: was ist los?
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 21.Dezember.2004, 20:31. WWW: automobilhai.de
Re: was ist los?
Hallo Michael,
ist dem Einen oder Anderen sicher auch schon passiert, daß er den Server zum krepieren gekriegt hat. Man hat dann aber unterschwellig immer das Gefühl, selbst daran Schuld gewesen zu sein. Schließlich experimentiert Jeder mal.
Gab übrigens Steak.;-)
Mit dem "nicht soviel wissen" bist Du bestimmt nicht allein. Der Einzige, der alles weiß ist Christoph.
Gruß
Claus
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.Dezember.2004, 21:07.
Re: was ist los?
aber einen Zeitzüder kann nicht jeder bauen und dann fragen was los ist.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 22.Dezember.2004, 11:15.
Re: was ist los?
Antworten