Ich kriegs nicht hin!!!!!!! - 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 Fabian (52 Beiträge) am Sonntag, 6.Mai.2001, 13:18.
    Ich kriegs nicht hin!!!!!!!

      Also, ich versuche mit Perl etwas hinzubiegen, dass mir baseportal aus einer Datenbank eine bestimmte Anzahl von Einträgen ausliest und im Flash5-konformem Format ausgibt.

      Mein Ziel:

      1. Das Template wird aufgerufen und als GET z.B. ein $Max=4 mitgeliefert. Dann soll:

        a. Das Template soll 4 zufällige Einträge aus der Datenbank fischen, die sich nicht wiederholen, und zwar heissen die Felder Frage, RA, FA1, FA2, FA3, Pkt und Rubrik. Am Ende soll das Template ausgeben:
      

      Frage=<<Frage1>>,<<Frage2>>,<<Frage3>>,<<Frage4>>
      &RA=<<RA1>>,<<RA2>>
      
      ...

      Meine Version dafür sieht so aus:

      if ($cmd eq "fragen")
      {
      $XFrage = "";
      $XRA = "";
      $XFA1 = "";
      $XFA2 = "";
      $XFA3 = "";
      $XPkt = "";
      $XRubrik = "";
       for ($i=1,$i<$max,$i++)
       {
       get "Id==?";
        while (@neu[$_id] == 1) {
         get "Id==?";
        }
        while (get_next)
        {
         @neu[$_id] = 1;
         $XFrage=$XFrage.$Frage.",";
         $XRA=$XRA.$RA.",";
         $XFA1=$XFA1.$FA1.",";
         $XFA2=$XFA2.$FA2.",";
         $XFA3=$XFA3.$FA3.",";
         $XPkt=$XPkt.$Pkt.",";
         $XRubrik=$XRubrik.$Rubrik.",";
        }
       }
      get "Id==?";
      while (@neu[$_id] == 1) {
       get "Id==?";
      }
      while (get_next)
      {
       @neu[$$_id] = 1;
       $XFrage=$XFrage.$Frage;
       $XRA=$XRA.$RA;
       $XFA1=$XFA1.$FA1;
       $XFA2=$XFA2.$FA2;
       $XFA3=$XFA3.$FA3;
       $XPkt=$XPkt.$Pkt;
       $XRubrik=$XRubrik.$Rubrik;
      }
      out "Frage=",$XFrage;
      out "\&RA=",$XRA;
      out "\&FA1=",$XFA1;
      out "\&FA2=",$XFA2;
      out "\&FA3=",$XFA3;
      out "\&Pkt=",$XPkt;
      out "\&Rubrik=",$XRubrik;
      out "\&Rest=";
      }
      

      Aber irgendwo mache ich einen Fehler - ich weiss nciht, wo...

      Baseportal sagt mir immer nur
      "[ Fehler: (perl) in /fabian354/Quiz/fragen: Modification of a read-only value attempted at /usr/local/httpd/cgi-bin/baseportal.pl line 2603. ]"

      Und ich weiss einfach nicht weiter...

      Danke schonmal im voraus.

      Fabian


    Ihre Antwort:

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

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Fabian (52 Beiträge) am Sonntag, 6.Mai.2001, 13:18.
    Ich kriegs nicht hin!!!!!!!

      Also, ich versuche mit Perl etwas hinzubiegen, dass mir baseportal aus einer Datenbank eine bestimmte Anzahl von Einträgen ausliest und im Flash5-konformem Format ausgibt.

      Mein Ziel:

      1. Das Template wird aufgerufen und als GET z.B. ein $Max=4 mitgeliefert. Dann soll:

        a. Das Template soll 4 zufällige Einträge aus der Datenbank fischen, die sich nicht wiederholen, und zwar heissen die Felder Frage, RA, FA1, FA2, FA3, Pkt und Rubrik. Am Ende soll das Template ausgeben:
      

      Frage=<<Frage1>>,<<Frage2>>,<<Frage3>>,<<Frage4>>
      &RA=<<RA1>>,<<RA2>>
      
      ...

      Meine Version dafür sieht so aus:

      if ($cmd eq "fragen")
      {
      $XFrage = "";
      $XRA = "";
      $XFA1 = "";
      $XFA2 = "";
      $XFA3 = "";
      $XPkt = "";
      $XRubrik = "";
       for ($i=1,$i<$max,$i++)
       {
       get "Id==?";
        while (@neu[$_id] == 1) {
         get "Id==?";
        }
        while (get_next)
        {
         @neu[$_id] = 1;
         $XFrage=$XFrage.$Frage.",";
         $XRA=$XRA.$RA.",";
         $XFA1=$XFA1.$FA1.",";
         $XFA2=$XFA2.$FA2.",";
         $XFA3=$XFA3.$FA3.",";
         $XPkt=$XPkt.$Pkt.",";
         $XRubrik=$XRubrik.$Rubrik.",";
        }
       }
      get "Id==?";
      while (@neu[$_id] == 1) {
       get "Id==?";
      }
      while (get_next)
      {
       @neu[$$_id] = 1;
       $XFrage=$XFrage.$Frage;
       $XRA=$XRA.$RA;
       $XFA1=$XFA1.$FA1;
       $XFA2=$XFA2.$FA2;
       $XFA3=$XFA3.$FA3;
       $XPkt=$XPkt.$Pkt;
       $XRubrik=$XRubrik.$Rubrik;
      }
      out "Frage=",$XFrage;
      out "\&RA=",$XRA;
      out "\&FA1=",$XFA1;
      out "\&FA2=",$XFA2;
      out "\&FA3=",$XFA3;
      out "\&Pkt=",$XPkt;
      out "\&Rubrik=",$XRubrik;
      out "\&Rest=";
      }
      

      Aber irgendwo mache ich einen Fehler - ich weiss nciht, wo...

      Baseportal sagt mir immer nur
      "[ Fehler: (perl) in /fabian354/Quiz/fragen: Modification of a read-only value attempted at /usr/local/httpd/cgi-bin/baseportal.pl line 2603. ]"

      Und ich weiss einfach nicht weiter...

      Danke schonmal im voraus.

      Fabian

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 7.Mai.2001, 19:03.
    Re: Ich kriegs nicht hin!!!!!!!

      Ich muss zugeben, ich versteh Deinen Code nicht ganz, ,-) Also von der Logik her, warum Du das irgendwie doppelt machst...?? Dabei ist der Ansatz schon völlig richtig. Mein Vorschlag (nicht getestet):

      for(my $i=0; $i<$max; $i++)
      {
       do
       {
        get "Id==?";
       } while(index($XIds, "$_id,")>=0);	# id schon vorhanden?
      
       $XIds.="$_id,"; # ids merken fuer check oben  $XFrage.="$Frage,"; # fuegt $Frage und , zu $XFrage hinzu  $XRA.="$RA,";  $XFA1.="$FA1,";  $XFA2.="$FA2,";  $XFA3.="$FA3,";  $XPkt.="$Pkt,";  $XRubrik.=$Rubrik.",";
      }

      # letztes , abschneiden
      chop $XFrage; chop $XRA; chop $XFA1; chop $XFA2; chop $XFA3; chop $XPkt; chop $XRubrik;
      

      out <<EOF; # besser,kürzer,schneller bei mehreren outs
      Frage=$XFrage
      &RA=$XRA
      &FA1=$XFA1
      &FA2=$XFA2
      &FA3=$XFA3
      &Pkt=$XPkt
      &Rubrik=$XRubrik
      &Rest=$XRest
      EOF
      

     Antworten

    Beitrag von Fabian (52 Beiträge) am Mittwoch, 9.Mai.2001, 21:37.
    Re: Ich kriegs nicht hin!!!!!!!

      Juhu, es funktioniert.

      Danke, Christoph.

      Wegen dem "warum du das doppelt machst" - hätte ich meine doppelte lösung nicht gemacht, hätte ich am ende jeder "kette" noch ein komma gehabt - da mir gerade nichts besseres einfiel, habe ich halt diese doppelte lösung genommen

      ps: bestünde interesse an dem quiz selber und der dazugehörigen datenbank? also, soll ich das ganze, wenns fertig ist, in die bibliothek stellen?

     Antworten


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