Anzeige:
Ergebnis 1 bis 12 von 12

Thema: schleife um variable variablenname

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.03.2002
    Ort
    Berlin
    Beiträge
    114

    schleife um variable variablenname

    Hi!

    ich habe den ganzen abend daran gesessen um variable variablennamen so hinzubekommen, dass es in meiner anwendung funktioniert.
    funktioniert jetzt auch endlich
    das problem ist jetzt, dass z.b.
    PHP-Code:
    if($option_1 == "Artikelnr"){ 
    option_1 17 verschiedene werte annehmen kann. da denke ich kann man wohl nix groß in eine schleife packen, weil es ja vergleiche mit strings sind.
    ich habe aber auch 17 options jedesmal mit den gleichen 17 werten und da würde ich ganz gerne ne schleife drum machen, nur blick ich nicht mehr durch, wie nun man aus <b>variablen variablennamen</b> <b>variable variable variablennamen</b> macht!?
    kann mir da jemand unter die arme greifen?

    hier mal ne if und elseif aus meiner anwendungdarum sollte eine for schleife um diese 17 mal durchlaufen zu lassen und die jeweilige zahl dann option_ und feld_ zuzuordnen).
    PHP-Code:
    if($option_1 == "Artikelnr"){
      
    $i 0
      while (
    $i <= $counter){
        
    $varArtikelnr_[$i] = 'feld_1_'.$i
        
    $Artikelnr_[$i] = $$varArtikelnr_[$i];
        
    $i++;
      }
    }
    elseif(
    $option_1 == "ArtikelnrAlt"){
      
    $i 0
      while (
    $i <= $counter){
        
    $varArtikelnrAlt_[$i] = 'feld_1_'.$i;
        
    $ArtikelnrAlt_[$i] = $$varArtikelnrAlt_[$i];
        
    $i++;
      } 

    vielen dank und gruss andi

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hmm.. habs mir jetzt dreimal durchgelesen, aber ich versteh immer noch nicht genau was du machen willst... vielleicht nochmal genauer erklären!


  3. #3
    Registrierter Benutzer
    Registriert seit
    26.03.2002
    Ort
    Berlin
    Beiträge
    114
    da hab ich mir fast gedacht
    also ich möchte eine for-schleife um meine if / elseif bedingung machen, nur muss ich
    die variablen
    PHP-Code:
    $option_1
    und 
    'feld_1_'.$i 
    in der schleife hochzählen.
    also so ungefähr:
    PHP-Code:
    for($x=1;$x<=$counter;$x++){
    if(
    $option_$x == "Artikelnr"){
      
    $i 0
      while (
    $i <= $counter){
        
    $varArtikelnr_[$i] = 'feld_$x_'.$i
        
    $Artikelnr_[$i] = $$varArtikelnr_[$i];
        
    $i++;
      }
    }
    ....
    usw 
    nur leider ist
    'feld_1_'.$i ja schon zusammengesetzt aus zwei variablen.
    bei option_1 sollte es wahrscheinlich durch eine definition nach der for-schleife gehen, also ungefähr so:
    PHP-Code:
    $varoption_[$x] = 'option_'.$x;
    $option_[$x] = $$varoption_[$x]; 
    aber hauptsächlich bekomme ich das 'feld_1_'.$i problem nicht in den griff

    ich hoffe es ist jetzt klarer!? ansonsten nochmal fragen bitte.
    gruss andi

    ps: hab gerade festgestellt, dass das mit der $option_1 variable geht, so wie ich es geschrieben habe - ist mir während des schreibens der antwort aufgefallen :-) -
    also gehts jetzt nur um 'feld_1_'.$i

  4. #4
    Registrierter Benutzer
    Registriert seit
    26.03.2002
    Ort
    Berlin
    Beiträge
    114
    sodele, hab das nun auch selber hinbekommen und wie immer wars gar nicht so schwer wie eigentlich angenommen

    PHP-Code:
    for($x=1;$x<=$counter;$x++){
      
    $varoption_[$x] = 'option_'.$x;
      
    $option_[$x] = $$varoption_[$x];

      if(
    $option_[$x] == "Artikelnr"){
        
    $i 0
        while (
    $i <= $counter){
          
    $varArtikelnr_[$i] = 'feld_'.$x.'_'.$i
          
    $Artikelnr_[$i] = $$varArtikelnr_[$i];
          
    $i++;
        }
      }
      elseif(
    $option_[$x] == "ArtikelnrAlt"){
        
    $i 0
        while (
    $i <= $counter){
          
    $varArtikelnrAlt_[$i] = 'feld_'.$x.'_'.$i;
          
    $ArtikelnrAlt_[$i] = $$varArtikelnrAlt_[$i];
          
    $i++;
        } 
      }
     .
     .
     .
     . 
    trotzdem danke, dass du versucht hast mein problem zu verstehen
    gruss andi

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Wenn $_option[$x] 17 verschieden WErte annehmen kann, wäre vielleicht eine switch .. case Anweisung übersichtlicher. (Nur so als Anmerkung )

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.07.2001
    Beiträge
    144
    Hallo,

    für
    PHP-Code:
    $i 0
        while (
    $i <= $counter){
          
    // Code
          
    $i++;
        } 
    gibt es
    PHP-Code:
    for ($i 0$i <= $counter$i++; ){
          
    // Code

    wie auch schon benutzt

    Offe
    Geändert von offe (13-10-2003 um 16:38 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.03.2002
    Ort
    Berlin
    Beiträge
    114
    @mehlvogel

    hatte auch überlegt es mit switch case zu machen, allerdings ist meine wahl dann doch anders ausgefallen.

    @offe

    was willst du mir jetzt damit sagen?
    hab while benutzt um die einzelnen schleifen untereinander abzugrenzen.


    gruss andi

  8. #8
    Registrierter Benutzer
    Registriert seit
    26.03.2002
    Ort
    Berlin
    Beiträge
    114
    neue variante meines problems:

    ich habe daten in einer db und die möchte ich in variablen variablen speichern.
    mein ansatz:
    PHP-Code:
    $select_update "SELECT * FROM t_csv_read WHERE random = '$random_session'";
    $query_update mysql_query($select_update); 

    $i 0;
    while(
    $row mysql_fetch_object($query_update)){
        
    $var1 "feld_1_".$i;
        $
    $var1 "$row->artikelnr";
        
        
    $var2 "feld_2_".$i;
        $
    $var2 "$row->beschreibung_de";

        
    $i++;
            
    }
    echo (
    $feld_1_2."<br>");
    echo (
    $feld_2_2); 
    nur leider funktioniert der nicht.
    es fehlt ja auch die zähl-bedingung für das $i aber ich komm nicht dahinter wie ich das mit dem mysql_fetch_object verbinde.
    mache ich es testweise so, dann geht es:
    PHP-Code:
    $counter 10;
    $i 0;

    while(
    $i<=$counter){

      
    $var1 "name".$i;
      $
    $var1 "PHP";
      
      
    $var2 "vorname".$i;
      $
    $var2 "hans";

      
    $i++;
      
    }
    echo (
    $name10."<br>");
    echo (
    $vorname5); 
    kann mir da jemand weiterhelfen?
    danke im voraus gruss andi

  9. #9
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    1. möglichkeit-Du versuchst es mit einem array:

    statt
    PHP-Code:
        $var1 "feld_1_".$i;
        $
    $var1 "$row->artikelnr";

        
    $var2 "feld_2_".$i;
        $
    $var2 "$row->beschreibung_de"
    versuch mal folgendes:
    PHP-Code:
        $arr["$row->artikelnr"]="$row->beschreibung_de";
         
    //bei artikennr=15
        
    echo $arr["15"];
    //oder 

        
    $arr[$i]["artikelnr"]=$row->artikelnr;
        
    $arr[$i]["beschreibung_de"]=$row->beschreibung_de;

        echo 
    $arr[2]["artikelnr"]; 
    wenn du tatsächlich im Schleifendurchlauf variaben erzeugen willst, dann in etwa so:
    PHP-Code:
        eval("feld_1_".$i."=".$row->artikelnr);
        eval(
    "feld_2_".$i."=".$row->beschreibung_de);

        echo 
    $feld_1_2
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  10. #10
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo!

    Ich denke auch, dass es besser ist mit einem Mehrdimensionalen Array zu arbeiten, als wie Wild dynamisch Variablen zu generieren.


  11. #11
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    und dann wäre die einfachste Schleife um die Daten in nen mehrdiemnsionalen Array zu packen:

    PHP-Code:
    $daten = array();
    while (
    $bla mysql_fetch_array()) $daten[] = $bla
    Mal eins am Rande: Warum benutzen hier fast alle mysql_fetch_objekt? Klar auf End ist es egal - aber ich finde es umständlich so ein ganzes Objekt zubehandeln anstatt nen einfaches Array...
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  12. #12
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    Original geschrieben von mehlvogel

    Mal eins am Rande: Warum benutzen hier fast alle mysql_fetch_objekt? Klar auf End ist es egal - aber ich finde es umständlich so ein ganzes Objekt zubehandeln anstatt nen einfaches Array...
    Ich benutze das nicht explizit. ich habe seit etwa zwei jahren eine kleine objektklasse für den Datenbankzugriff.

    daurch sieht's in meinem Quelletxt eigentlich immer so aus:
    PHP-Code:
    $sql="select * from pool p...where poolusertypid=".$ptyp;
    $rs_arr=$db->select($sql);
    if (!
    $rs_arr) {echo "keine Daten";}
    else {
        for (
    $i=0;$i<count($rs_arr);$i++) {
              echo 
    $rs_arr[$i]["poolname"]...;
              }

    meine funktion "select" liefert mir ein zweidimensionales array zurück, mit dem sich prima arbeiten läßt.

    Den code der verhergehenden Posts habe ich nur kopiert und angepasst...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •