Re: Ergebnis aus get_next in einer Variable speichern - 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 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

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Oliver ;-) (500 Beiträge) am Sonntag, 23.Februar.2003, 13:29.
    Ergebnis aus get_next in einer Variable speichern

      Hallo Zusammen,

      ich möchte Daten aus einer DB mit get_next holen und einer Variablen zwischenspeichern. Ich habe aber keine Vorstellung, wie ich das machen kann. Dies sollte so aussehen:

      get "blablabla...","db";
      

      while (get_next("db"))
      {
      $zwischenvariable="<b>$feld1</b> und $feld2<br>";
      }
      $sammelvariable=$zwischenvariable1+$zwischenvariable2+...;
      

      Wie mache ich das richtig?

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 23.Februar.2003, 18:52.
    Re: Ergebnis aus get_next in einer Variable speichern

      Ich weiss zear jetzt nicht genau was du vorhast, könnte mir aber vorstellen das es auch schöner geht als das ganze in ein Array (das ist das was du suchst) zu speichern.

      Dein Befehl würde dann so aussehen:
      --------------------------------

      get "blablabla...","db";
      

      my @sammelvariable;

      while (get_next("db"))
      {
      $zwischenvariable="<b>$feld1</b> und $feld2<br>";
        push(@sammelvariable,$zwischenvariable);
      }
      

      ------------------------------

      Dann steht das ganz in einer List und du kannst damit machen was du willst.
      (nur wozu so umständlich? *g*)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 23.Februar.2003, 19:57.
    Re: Ergebnis aus get_next in einer Variable speichern

      oder noch einfacher:
      get "blablabla...","db";
      while (get_next("db"))
      {
      $endvar.="<b>$feld1</b> und $feld2<br>";
      }
      out $endvar;
      

      Sander

     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;

      while (get_next("db"))
      

      {
      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

      Danke, aber habe da noch eine Frage.

      irgendwie funktioniert es nicht.

      Damit der Reload automatisch erfolgt habe ich in den head noch dieses Script gesetzt:

      <script language=JavaScript>
      <!--
      setTimeout("window.location.href='$_link';",10000);
      //-->
      </script>
      

      Das heißt, dass ich den "reload"-Link nicht benötige. Nur so funktioniert es nicht. Es werden die Variablen nicht durchgeschleift und der reload-Link funktioniert auch nicht...

      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 24.Februar.2003, 12:51.
    Re: Ergebnis aus get_next in einer Variable speichern

      anders:

      <form name="formular" 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:formular.submit()">reload</a>
      </form>
      

      <script>
      setTimeout('formular.submit()',10000);
      </script>
      

     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

      out runtime;
      

      (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


     
 Liste der Einträge von 40200 bis 40350:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < 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.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!