Beitrag von Oliver ;-) (500 Beiträge) am Sonntag, 23.Februar.2003, 13:29.
Ergebnis aus get_next in einer Variable speichern
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 23.Februar.2003, 18:52.
Re: Ergebnis aus get_next in einer Variable speichern
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 23.Februar.2003, 19:57.
Re: Ergebnis aus get_next in einer Variable speichern
Antworten
Beitrag von Oliver ;-) (82 Beiträge) am Sonntag, 23.Februar.2003, 22:12.
Re: Ergebnis aus get_next in einer Variable speichern
Danke Sander und Pouraga,
der "einfache" Vorschlag funktioniert schon.
Jetzt habe ich aber noch eine Herausforderung (für mich - nicht für euch... ;-) ):
Ich habe vor, get_next nur die neuesten Einträge seit dem letzten refresh zu holen. D.h., ich speicher die geholten daten in der $endvar und schleife sie bei einem refresh durch (z.B. als $durchlaufvar).
Nach dem Refresh verknüpfe ich $durchlaufvar und $endvar und gebe eine $gesamtvar aus.
Verstanden...? ;-)
Das bräuchte ich jetzt als Code...
Grüße
Oliver ;-)
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 23.Februar.2003, 23:15.
Re: Ergebnis aus get_next in einer Variable speichern
Wenn du irgendwas "durchlaufen" möchtest müsstest du schon meine Variante nehmen.
Aber was meinst du mit "seit dem letzten refresh"
Den Abruf des Users? Die Variablen sind nicht permanent, das funktioniert also nicht wenn du damit was vorhast.
Was möchtest du den überhaupt machen?
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Sonntag, 23.Februar.2003, 23:30.
Re: Ergebnis aus get_next in einer Variable speichern
Hallo Pouraga,
es werden laufend daten in eine db geschrieben, die ich mir immer wieder mit get_next holen möchte.
nun habe ich mir gedacht, dass es doch resourcen-schonender ist, wenn ich die einmal geholten daten in einer variablen speicher und diese variable mit durchschleife.
dann muss ich "nur" noch die neuen ds holen und die durchgeschleiften nur noch dranhängen, um eine komplette liste zu haben.
Grüße
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 23.Februar.2003, 23:45.
Re: Ergebnis aus get_next in einer Variable speichern
normaler reload ist da nicht möglich. du könntest das perl link durchschleifen, nur ist der htmlcode für die url etwas happig ;-)
sonst ginge es noch per formular in einem hiddenfeld oder per session und db-eintrag, wo jeweils der zuvor erzeugte Code reingespeichert wird.
Dieser htmlcode wird dann geholt und mit get ab der bisherigen last_id ausgegeben.
Verstehst du das jetzt? ;-)
Sander
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Sonntag, 23.Februar.2003, 23:53.
Re: Ergebnis aus get_next in einer Variable speichern
... nicht so ganz.
Du meinst, ich solle die dammelvariable in einer zweiten db abspeichern.
Aber dann habe ich ja zwei db-aufrufe...
Oliver ;-)
Antworten
Beitrag von Oliver ;-) (82 Beiträge) am Sonntag, 23.Februar.2003, 23:55.
Re: Ergebnis aus get_next in einer Variable speichern
Sammelvariable.... mit dem Buchstaben verrutscht... ;-)
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 23.Februar.2003, 23:54.
Re: Ergebnis aus get_next in einer Variable speichern
Ne, das wird wohl nix. *g*
Hast ja sander gehört wie es gemacht werden könnte.
Aber einmal ein komplettes holen des gebrauchten ist "viel" resourcen-schonender als irgendwelches schleifen gehoppel in dem man jetzt neu und alt vergleicht oder Zwischenlagern in ner anderen Datenbank. (Du müstest ja eh erstmal alle Daten holen um zu schaun ob du sie noch nicht hast ;) )
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Sonntag, 23.Februar.2003, 23:57.
Re: Ergebnis aus get_next in einer Variable speichern
ich könnte doch die id des letzten ds mit durchschleifen und anschließend alle ds größer der (durchgeschleiften)id holen...
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 00:01.
Re: Ergebnis aus get_next in einer Variable speichern
jup, und den Rest aus einem Formular auslesen, da kannst du ne ganze Menge an Daten reinstecken ;-)
Sander
Antworten
Beitrag von Pouraga (1396 Beiträge) am Montag, 24.Februar.2003, 00:07.
Re: Ergebnis aus get_next in einer Variable speichern
Oder du könntest dir auch nen Ring durch die Nase ziehen. *g* (Zweimal das Zitat an einem Tag)
Ne, das wird nix was du vorhast. Man nutzt doch Datenbanken deshalb.
Man könnte jetzt die Daten in eine extra Datei schreiben. (wohl erst in Basportal 2 möglich, aber wir nehmen es mal an)
Dann holst du die Datei rein, trennst das ganze wieder in eine Array auf, nimmst dir die letzte Id. Holst alles aus der Datenbank was höher von der Id ist und verbindest das beides dann wieder und speicherst es zurück in die Datei.
(das selbe nur viel schöner macht baseportal ja auch intern)
Und das soll dann schneller gehen? *g* (
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 00:25.
Re: Ergebnis aus get_next in einer Variable speichern
wieso dauert das lange? wenn er die schon geholten ds zusammen in ein hidden-feld im form fügt und als 2ten hidden die Id des letzten gelesenen DS reinsteckt, dann beim abschicken das erste hidden ausgibt + einem get ab der letzten id und das wiederum in dem form speichert? Warum ein array? ist alles nur string. Übrigends macht man das bei Statistiken meistens so, die schon gelesene Auswertung wegzuspeichern anstatt ständig die Daten neu zu holen und zu berechnen.
Sander
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Montag, 24.Februar.2003, 08:34.
Re: Ergebnis aus get_next in einer Variable speichern
Guten Morgen Sander,
das mit dem hidden-Feld hört sich nicht schlecht an, aber gibt es eine Möglichkeit, dieses automatisch abzuschicken. Soweit ich weiß, müssen Formularfelder immer manuel angestoßen werden, oder?
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 09:41.
Re: Ergebnis aus get_next in einer Variable speichern
ja, willst du alle paar sekunden von allein neu lesen lassen?
mit
document.name.submit() in javascript geht dös.
Sander
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Montag, 24.Februar.2003, 11:20.
Re: Ergebnis aus get_next in einer Variable speichern
ich glaube, jetzt kommen wir einer lösung näher... :-)
vielleicht kannst du mir noch etwas weiter helfen. das müsste bei mir dann wohl so aussehen:
get "Id>$letzteId blablabla...","db";
my @sammelvariable;
{
if (variante1) ## ich muss noch eine bedingung verarbeiten...
{
$zwischenvariable="<b>$feld1</b> und $feld2<br>";
push(@sammelvariable,$zwischenvariable);
}else
{
$zwischenvariable="$feld1 und $feld2<br>";
push(@sammelvariable,$zwischenvariable);
}
}
Jetzt meine Fragen:
Wie setze ich die Variablen zusammen?
so -> $gesamtvariable=$sammelvariable.$durchlaufvariable; ?
Wie lautet dann der Javascriptcode zum durchschleifen?
Wie ermittel ich die letzte Id?
Grüße
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 11:38.
Re: Ergebnis aus get_next in einer Variable speichern
also ich würde das so machen:
get "Id>$lastid blablabla...","db";
while (get_next("db"))
{
if (variante1) ## ich muss noch eine bedingung verarbeiten...
{
$zwischenvariable.="<b>$feld1</b> und $feld2<br>";
}else
{
$zwischenvariable.="$feld1 und $feld2<br>";
}
$lastid=$_id;
}
$komplett=$durchlauf.$zwischenvariable;
out $komplett;
$komplett=convert_quote($komplett);
out <<EOF;
<form method=post action=$_link enctype="multipart/form-data">
<input type=hidden name="htx=" value="$htx">
<input type=hidden name="durchlauf=" value="$komplett">
<input type=hidden name="lastid=" value="$lastid">
<a href="javascript:this.form.submit()">reload</a>
</form>
EOF
Sander
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Montag, 24.Februar.2003, 12:34.
Re: Ergebnis aus get_next in einer Variable speichern
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 12:51.
Re: Ergebnis aus get_next in einer Variable speichern
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Montag, 24.Februar.2003, 13:09.
Re: Ergebnis aus get_next in einer Variable speichern
ja, jetzt funktioniert es.
allerdings stimmt das mit der Id noch nicht. es wird wohl die erste und nicht die letzte Id geholt...
Was muss ich da noch ändern?
Oliver ;-)
Antworten
Beitrag von Pouraga (1396 Beiträge) am Montag, 24.Februar.2003, 11:49.
Re: Ergebnis aus get_next in einer Variable speichern
Sagt mich wenn ich mich da irre, aber dauert das Senden der Daten vom User zum Server nicht viel länger als das auslesen aus einer Datenbank.
Gut das taucht in der runtime nicht auf, und es belastet nicht den Server. Aber das Netz! Und der User bekommt seine Daten dann auch nicht schneller zu sehen, weil die Abfrage viel länger dauert. ;)
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 12:17.
Re: Ergebnis aus get_next in einer Variable speichern
welche Abfrage dauert länger? es werden doch nicht mehr alle ds geholt.
Senden von ein paar byte wird es schon verkraften... müsste man mal messen
Sander
Antworten
Beitrag von Pouraga (1396 Beiträge) am Montag, 24.Februar.2003, 15:16.
Re: Ergebnis aus get_next in einer Variable speichern
Die Abfrage vom User, die Daten mit der Anfrage zum server zu senden dauert bestimmt länger als sie blos am Server aus der Datenbank zu holen.
Die Daten werden bei der Formularvariante ja nicht nur zum User gesendet sondern von dort auch wieder zurück (und upload dauert).
Deshalb gibt es bei einem Reload (wenn man jetzt nur von den DB Daten ausgeht) den doppelten Traffic. (alle daten hin und alle daten+x wieder zurück)
Ob das jetzt in Bezug auf die Geschwindigkeit Sinn macht wag ich zu bezweifeln.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 24.Februar.2003, 15:20.
Re: Ergebnis aus get_next in einer Variable speichern
Hängt im Zweifel vom Einzelfall und der Menge der Daten ab, was schneller geht - aber Du hast sicher Recht den ganzen Aufwand anzuzweifeln, ich würde auch denken, dass es sich in den meisten Fällen nicht lohnt ;-)
Antworten
Beitrag von Pouraga (1396 Beiträge) am Sonntag, 23.Februar.2003, 23:59.
Re: Ergebnis aus get_next in einer Variable speichern
Achja, und über was machst du dir überhaupt Sorgen? *g*
Hast du schonmal die Laufzeit gemessen?
Mit
(Funktioniert nur in Lizens oder Mietversion)
Man muss sich schon anstrengen um die auf einen bedenklichen Wert zu bekommen. (viel mehr als mit SQL ;) )
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Montag, 24.Februar.2003, 00:12.
Re: Ergebnis aus get_next in einer Variable speichern
bei 50 geholten ds dauert die ausführung etwa 0.10 Sekunden...
Oliver ;-)
Antworten