mögliche Lösung mit get_next - 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 Stephan Hix (106 Beiträge) am Samstag, 17.Februar.2001, 20:21.
    mögliche Lösung mit get_next

      Der get-Befehl erzeugt wohl nicht wirklich einen Hash, zumindest kann ich nicht so darauf zugreifen. Aber da die Daten im Speicher sind, geht es trotzdem viel schneller, wenn man mit get_next eine Schleife baut, als wenn man nochmal abfragen würde.

      get "Id=1","db",ergebnis;
      get "ID=4","db",ergebnis2;
      

      while(get_next("ergebnis")){
        if ($Id=4){
           out $titel;
      }
      

      while(get_next("ergebnis2")){
        if ($Id=1){
           out $titel;
      }
      

      Das macht aber nur Sinn, wenn es sich um zwei unterschiedliche Datenbanken handelt. Anderenfalls liest man wohl besser die ganze Datenbank ein und greift dann bei Bedarf mit get_next darauf zu.


      Ich hoffe, ich konnte euch helfen.

      Gruß
      Stephan


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von pinces (20 Beiträge) am Samstag, 17.Februar.2001, 14:03. WWW: pinces.de.vu
    nach get "xyz1"; get "xyz2"; get "xyz3" über hash auf die ausgaben zugreifen ?

      ich habe gesucht und keine antwort gefunden! leider

      die sache ist die: mein code sieht langsam so wild aus das ich fast schon selbst nicht mehr durchblicke

      jetzt will ich alles aufräumen:
      - abfragen nach oben ja nach parametern
      - ausgaben dann nur noch in ein paar klauseln darunter

      dazu würde ich gerne alle abfragen mit get die ich brauche anfangs im file machen (u.a. um z.b. meta keywords aus der datenbank zu haben)
      da es sich aber wie gesagt um mehrere verschiedene abfragen handelt muß ich alle auch nochmal später haben

      wie kann ich jetzt nach get "Id==$id","sonstwas","hash1"
      auf die daten im hash1 zugreifen und zwar immer auf die selben: zum teil ist es eh nur ein db eintrag im hash und wenn es doch mehrere sind brauche ich die auch immerwieder von anfangan - also nix mit get_next("hash1")

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 17.Februar.2001, 16:54.
    Re: nach get "xyz1"; get "xyz2"; get "xyz3" über hash auf die ausgaben zugreifen ?

      Das würde mich auch brennend interessieren, hab schon die halbe Nacht damit verbraucht auf eine Lösung zu kommen.

      Sander

     Antworten

    Beitrag von pinces (20 Beiträge) am Samstag, 17.Februar.2001, 17:06. WWW: pinces.de.vu
    Re: nach get "xyz1"; get "xyz2"; get "xyz3" über hash auf die ausgaben zugreifen ?

      ich arbeite auch weiter daran und es geht einfach nicht
      ich habe mir mal das verhalten von get_next genauer an geguckt: es gibt immer alles im kreis aus wiederholt also alles .. nur wen es am letzen ist hat get_next selbst "" nix sonst 1
      wenn man range richtig parametriet komme ich damit hin zur not kann man nach einer abfrage von nicht allem mit while(...) wieder ansende und somit an den anfang rattern. ist aber resourcen verschwendung ...
      fazit: ich will den hash auch wenn ich nocht nicht genau weiß (lerne perl jetzt erst ne woche oder so) was da genau auf mich zu kommt

      auf meiner page habe ich eine coole verdeutlichung eines studenten zu den ganzen datentypen und deren verhalten bei zuweiungen etc.

      für R keine haftung

     Antworten

    Beitrag von Stephan Hix (106 Beiträge) am Samstag, 17.Februar.2001, 17:54.
    Könntet Ihr das mal genauer erklären?

      Hallo Pinces, Hallo Sander!

      Ich habe auch in den letzten Tagen ein wenig mit hashes gearbeitet und würde ja gerne helfen. Aber mir ist nicht klar, welche Daten Ihr warum und wie speichern wollt.

      Aus dem get-Befehl ersehe ich, dass der hash wohl den Namen der Datenbank ausgeben soll - aber mit welchem Schlüssel? Und wofür braucht Ihr das?

      Könnt Ihr genaueres erklären, oder den Code posten bzw. mailen?

      Gruß
      Stephan

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 17.Februar.2001, 18:58.
    Re: Könntet Ihr das mal genauer erklären?

      Beispiel:

      get "Id=1", "db", "ergebnis";
      get "Id=4", "db", "ergebnis2";
      

      out $titel # von ergebnis
      out $titel # von ergebnis2
      

      und hier weiß ich nicht wie ich auf ttel aus den einzelnen Ergebnissen draufgreife. Hier ginge es auch anders - out vor der 2ten Abfrage - aber prinzipell muß man doch das auch später ausgeben können zB. wenn weiter get_next folgt (in der Schleife werden dann doch die Werte überschrieben). Verstehst du mich und das problem? :-)

      Sander

     Antworten

    Beitrag von Stephan Hix (106 Beiträge) am Samstag, 17.Februar.2001, 19:27.
    Naja ...

      Hi Sander!

      Ich habe keine Ahnung, wie der Hash %ergebnis aufgebaut wird - steht leider nix in der Doku. Aber wenn es nur um das eine Feld $titel geht, würde ich das so lösen:

      get "Id=1", "db";
      $ergebnis{$_id}=$titel;
      

      get "Id=4", "db";
      $ergebnis{$_id}=$titel;
      

      out $ergebnis{4}; # gibt $titel von Id=4 aus
      out $ergebnis{1};  # gibt $titel von Id=1 aus
      

      Sollte so klappen ...

      Wenn ihr was über die Struktur vom hash des get-Befehls rausbekommt, würde mich das mal interessieren. Wie sind die Schlüssel (Laufende Nummer?) und was der Wert? ... werde mal ein paar Tests machen.

      Gruß
      Stephan

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 17.Februar.2001, 22:30.
    Re: Naja ...

      ne, es soll irgendwann auf alle Variablen zugegriffen werden. Ich krieg das jetzt nicht mehr zusammen, was ich machen wollte, bloß daran scheiterte es. Irgenwie muß man ja dann auf das Ergebnis zugreifen können, sonst wäre es ja Quatsch überhaupt Ergebnis anzugeben.
      Ich hab auch schon nach der Abfrage mit $_sel probiert daran zukommen - nischt :-).

      Sander

     Antworten

    Beitrag von Stephan Hix (106 Beiträge) am Samstag, 17.Februar.2001, 20:21.
    mögliche Lösung mit get_next

      Der get-Befehl erzeugt wohl nicht wirklich einen Hash, zumindest kann ich nicht so darauf zugreifen. Aber da die Daten im Speicher sind, geht es trotzdem viel schneller, wenn man mit get_next eine Schleife baut, als wenn man nochmal abfragen würde.

      get "Id=1","db",ergebnis;
      get "ID=4","db",ergebnis2;
      

      while(get_next("ergebnis")){
        if ($Id=4){
           out $titel;
      }
      

      while(get_next("ergebnis2")){
        if ($Id=1){
           out $titel;
      }
      

      Das macht aber nur Sinn, wenn es sich um zwei unterschiedliche Datenbanken handelt. Anderenfalls liest man wohl besser die ganze Datenbank ein und greift dann bei Bedarf mit get_next darauf zu.


      Ich hoffe, ich konnte euch helfen.

      Gruß
      Stephan

     Antworten

    Beitrag von pinces (20 Beiträge) am Sonntag, 18.Februar.2001, 22:34. WWW: pinces.de.vu
    wozu ich das brauche ...

      falls es noch von interesse ist:
      ich benutzt eine virtuelle url die ja frames benutzt
      und will nicht dass die besucher 1. diese wilden urls sehen und 2. dass sie trotzdem einen exakten bookmark saven können
      so: dadurch ist meine gesammt page eine einzige datei bei baseportal .. sie ist zwar nicht wirklich eine aber man kann das so sehen weil die hauptdatei nur aus ein paar if und ner menge include besteht

      fazit: die sacht ist kaum noch zu durchblicken

      der inhalt der page wird fast zu 100% über "einige" zusammen gesetzte parameter übergeben diese werden zwerflückt und die datanbanken werden gelesen
      wenn ich das alles zusammen vor der eigentlichen ausgabe machten könnte wäre die sache einiges übersichtlicher.

      ich baue mir jetzt meine eigenen -hashes kann an nicht sagen- aber datenspeicher eben

      was solls .. wo bekommt man schon so ein nettes webinferfact zu perl programmierung .. damit lässt sich schon manch eine langweilige informatik stundein der schule überstehen

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 20.Februar.2001, 14:58.
    Re: wozu ich das brauche ... - lösung

      sorry für die durchmachten nächte, z.zt. geht das schlicht und einfach garnicht - %ergebnis ist leer (ganz umsonst ist die Angabe von "ergebnis" aber nicht, denn man kann darin ja verschiedene abfragen derselben Datenbank speichern und mit get_next(...) durchlaufen). ich bastele aber gerade an einer neuen version mit vielen, vielen neuerungen und da habt ihr dann tatsächlich einen hash zur verfügung... die syntax sieht dann so aus:

      $ergebnis{Name}[0];
      

      gibt z.B. das Feld "Name" der ersten Ergebniszeile von "ergebnis" aus...

     Antworten


     
 Liste der Einträge von 64950 bis 65100: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.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!