Variable durch Schleife zusammensetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable durch Schleife zusammensetzen

    hey!

    Ich möchte eine Variable folgendermaßen aufbauen:

    PHP-Code:
    $print_text "|$feld_1|$feld_2|$feld_3|$feld_4|$feld_5|$feld_6|...|"
    In die Variable $print_text sollen soviele $feld_ eingesetzt werden, bis die Anzahl einer vorher errechneten Zahl entspricht...

    Mit einer Schleife kann man das sicherlich machen, aber wie setzt ich die "Ergebnisse" der Schleife so zusammen das sie in der Variablen wie oben aussehen?

    anschließend soll diese Variable eine Zeile in einer Textdatei ersetzen...

    Kann mir jemand helfen wie ich die Variable zusammensetzen kann?

    Danke im Voraus!

    MFG Israel's Son

  • #2
    Re: Variable durch Schleife zusammensetzen

    Original geschrieben von israelsson
    Kann mir jemand helfen wie ich die Variable zusammensetzen kann?
    Kann mir jemand helfen wie ich das zu verstehen habe?

    du meinst ja sicherlich nicht
    PHP-Code:
    $text '';
    while (
    strlen($text 25))
      
    $text .= 'fünef';
    echo 
    $text
    das gibt dir nämlich
    Code:
    füneffüneffüneffüneffünef
    aus und das sind - welch wunder - 25 zeichen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: Re: Variable durch Schleife zusammensetzen

      PHP-Code:
      while (strlen($text) < 25)
        
      $text .= 'fünef';
      echo 
      $text
      Vielleicht doch besser so?

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        komisch, sonst braucht ihr doch nicht so lange...
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          hmm nee, es soll einfach irgendwie solch einen aufbau haben wie in meinem obigen Text...

          Also ich möchte mit diesem script nachher alle möglichen Textdateien aufrufen können, diese Textdateien sind alle nach einem Muster aufgebaut:

          | als Trennzeichen und dann beliebig viele Werte
          bsp:
          • |wert1|wert2|wert3|wert4|
            |wert5|wert6|wert7|wert8|
            |wert9|wert10|wert11|wert12|


          Diese Textdatei hätte nun 4 werte in einer Zeile jeweils durch | voneinander getrennt.

          Wenn ich nun in meinem bsp die 2te Zeile ändenr möchte, soll das script erkennen wieviele werte in der Zeile 2 sind (im bsp sinds 4 werte --> wert5 bis wert9)

          Das wird berechnet und funktioniert auch alles!

          Jetzt werden meine neuen 4 Werte durch ein Formular an mein Script geschickt. Diese 4 Werte sollen nun in die Variable $print_text geschrieben werden...

          Aber da die Variable $print_text ja nicht immer nur 4 Werte aufnehmen soll, sondern die Anzahl der Werte durch die Datenbank berechnet wird und somit immer verschieden ist, muss die Variable $print_text irgendwie zusammengesetzt werden...

          Die neuen Werte stecken eben in den variablen $feld_1 bis $feld_4 welche nun irgendwie in diesem Muster eingebunden werden sollen:

          $print_text = "|$feld_1|$feld_2|$feld_3|$feld_4|";

          Der Inhalt der Variable $print_text ersetzt dann anschließend die 2te Zeile der Textdatei...

          Jetzt verstanden was ich vorhabe?

          Ich hab nur keine Ahnung ob das überhaupt möglich ist.

          Das mit der While schleife wie ihr sie benutzt habt, hab ich auch schon versucht, aber das bringt nur etwas, wenn die Textdatei eine einzige Zeile enthält, denn dann könnte die Textdatei einfach komplett geleert werden, und jede $feld_ Variable nacheinander zusammen mit seinen Trennzeichen in die Textdatei geschrieben werden...

          Aber das ist hier nicht vorteilhaft...

          Was mir grade an dieser Stelle einfällt, wenn ich eine übergangstextdatei verwende, in der ich die Zeile für die $print_text einbaue, diese dann in eine variable lade und anschließend so wie ich es vorhatte zusammensetze, könnte es klappen. Allerdings ist dies eine sehr unvorteilhafte Lösung.
          Was wäre z.B. wenn zwei Personen gleichzeitig auf diese Übergangsdatei zugreifen und versuchen ihre $print_text daten einzubinden, dann würden sie sich geghenseitig überschrieben ...

          Wisst ihr eine sinnvolle Möglichkeit?

          Danke im Voraus!

          MFG israel's Son

          Kommentar


          • #6
            Wie wärs mit:

            - zeilenweise auslesen
            - dabei Zeile exploden => count drauf Anzahl der Felder die durch | getrennt sind schon mal bekannt....
            - Neue Felder im Array anhängen
            - imploden
            - Zeile überschreiben
            [color=blue]MfG Payne_of_Death[/color]

            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
            [color=red]Merke:[/color]
            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

            Murphy`s Importanst LAWS
            Jede Lösung bringt nur neue Probleme
            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

            Kommentar


            • #7
              hey!

              mit dem zeilenweise einlesen ok, ich kann mir noch nicht so richtig vorstellen wie ich das machen soll...

              ich hab mal angefangen, so wie ich meinte, aber ich steck schon an na ganz anderen Stelle fest:

              PHP-Code:
              // hab den code geändert!!!
              if(empty($action)) {
                echo 
              "<form action=\"?action=write\" method=\"POST\">
                <input type=\"Text\" name=\"id\" size=\"3\"><br>
                <input type=\"Text\" name=\"archiv\" size=\"15\"><br>
                <input type=\"Text\" name=\"feld[1]\" value=\"Test1\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[2]\" value=\"Test2\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[3]\" value=\"Test3\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[4]\" value=\"Test4\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[5]\" value=\"Test5\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[6]\" value=\"Test6\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[7]\" value=\"Test7\" size=\"50\"><br>
                <input type=\"Text\" name=\"feld[8]\" value=\"Test8\" size=\"50\"><br>
                <input type=\"Submit\" value=\"senden\"></form>"
              ;
              }

              if(
              $action == "write") {
                
              $file file("data/".$archiv."_log.dat");
                
              $count count($file);
                if(
              $count "1") {
                  
              $element explode("|",$file[$id]);
                  
              $anzahl count($element) -2;
                  for(
              $i=1$i <= $anzahl$i++) {
                    
              $feld_go $feld[$i];
                    
              $new_line str_replace ("$element[$i]","$feld_go"$file[$id]); 
                    echo 
              "$feld_go => $element[$i]<br>$new_line<br>"
                  }
                }

              ich hab einfach ein passendes Formular zu meiner Testtextdatei erstellt.

              Jedoch werden nun die Namen der <input felder nicht erkannt

              "$feld_".$i
              oder
              $feld_$i
              wie soll ich das schrieben, damit er eben nur die Zahl ändert und dann den Inhalt der Variable $feld_1 bis $feld_8 übernimmt?

              Bisjetzt, nimmt er einfach $i weil er ja $feld_ nicht kennt, bzw diese Variable keinen Wert hat...
              Zuletzt geändert von israelsson; 04.01.2005, 11:43.

              Kommentar


              • #8
                entweder (zum x-ten mal) "variable variablen" - oder konsequenter weise auch ganz auf arrays umsteigen, analog http://php-faq.de/q/q-formular-checkbox.html
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ok stimmt!

                  PHP-Code:
                  for($i=1$i <= $anzahl$i++) {
                        
                  $feld_go $feld[$i];
                        
                  $new_line str_replace ("$element[$i]","$feld_go"$file[$id]); 
                        echo 
                  "$feld_go => $element[$i]<br>$new_line<br>"
                      } 
                  so funzt es!

                  Nur jetzt steh ich vor genau dem selben Problem wie ich vorher auch stand.

                  Jetzt hab ich zwar die Möglichkeit einzelne elemente der Zeile zu ändern, aber wie speicher ich nu das "ergebnis" also alle änderungen der for schleife in eine Variable, damit ich diese dann anschließend ersetzen kann?

                  Neue Felder im Array anhängen
                  Was is damit genau gemeint? Und wie soll ich das dann imploden?

                  überschreiben hmm jo das bekomm ich evt selber hin!
                  Zuletzt geändert von israelsson; 05.01.2005, 13:30.

                  Kommentar

                  Lädt...
                  X