Variablen verknüpfen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variablen verknüpfen

    Hallo...
    ich habe ein mit php generiertes Formular da gibt es die Variablen:
    PHP Code:
    $delete1 $delete2 ... bis $delete7 
    Jetzt will ich die dazugehörigen db-einträge löschen wenn der Wert
    einer dieser Variablen "löschen" ist entfernen.
    In etwa so:
    PHP Code:
    $a 1;
    $del $delete.$a;
    if (
    $del == löschen
       {
         
    mysql_query("DELETE FROM ....");
       } 
    das ganze wird mit einer while schleife immer wieder durchlaufen (7x).
    $a wird jedes mal hochgezählt.
    Ich möchte also damit:
    PHP Code:
    $del $delete.$a
    der Var $del den Inhalt der jeweiligen Var $delete1 - $delete7 zuweisen.
    Wie ist das möglich??? Hab echt schon ewig gesucht und rumprobiert.
    Die Ver $delete existiert natürlich nicht...
    Wie kann ich die Variablen verknüpfen und den Inhalt dieser Verknüpfung
    einer anderen Variablen zuweisen???

    Danke schon mal...

  • #2
    1. du solltest ein array nehmen, is besser
    2. wenn nicht, dann hilft
      PHP Code:
      $del = ${'delete'.$n}; 
      weiter (denke ich)

      die suche nach variable variable tut's auf jeden fall
    Ich denke, also bin ich. - Einige sind trotzdem...

    Comment


    • #3
      ich habe zwar nie probiert, jetzt auch nicht, aber es müsste auch so funz:
      PHP Code:
      for ($i=1,$i<8;$i++) {
         if (isset(
      $_POST['delete'.$i]) && ...) {
         ...
         }

      oder nicht? in ASP kein Problem.

      Comment


      • #4
        in PHP auch kein problem, aber du musst ja nicht gleich alles verraten
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          Vielen Dank

          Danke, das mit dem array geht nicht alle anderen Daten sind aber
          in einem array...
          Na ja variable variable??? Ich hatte so dynamische Variablen im
          Kopf und Variablenverknüpfung...

          Das klappt aber jetzt vielen Dank...

          Comment


          • #6
            Re: Vielen Dank

            Original geschrieben von Djuke1980-m
            das mit dem array geht nicht
            warum?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Comment


            • #7
              Re: Re: Vielen Dank

              Original geschrieben von mrhappiness
              warum?
              ich vermute, weil er nicht weiss, wie man HTML-seitig die Felder so deklariert, dass sie als Array an PHP ankommt

              Comment


              • #8
                Weil...

                das sieht so aus und wird ebenfalls in einer while Schleife erzeugt:
                PHP Code:
                <input type='checkbox' name='delete".$n."' value='löschen'
                (Wahrscheinlich geht es nicht weil ich es NOCH nicht kann)
                Aber ich wüßte nicht wie ich das in einen array schreiben sollte,
                da die Werte ja erst beim abschicken registriert werden...

                Comment


                • #9
                  @asp2php
                  du bist mein held, du weißt einfach alles

                  PHP Code:
                  echo '<input type="checkbox" name="delete['.$n.']" value="loeschen">'
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Comment


                  • #10
                    Ich habe Tipps immer gerne. THX

                    Mein Code der ersten Seite:
                    PHP Code:
                    $info mysql_query("SELECT * FROM eventdaten WHERE seite='hotlinezeiten'");
                    $infodaten mysql_fetch_array($info,MYSQL_BOTH);
                    $uebergabedaten=array(tag => array(1),
                                          
                    datum => array(2),
                                          
                    azeit => array(3),
                                          
                    ezeit => array(4));
                    $n 0;
                    while (
                    $infodaten != FALSE || $n 7)
                        {
                            
                    $n ++;
                            echo 
                    "        <td width='111' valign='middle' align='center'>";
                            echo 
                    "          <input type='text' name='' size='10' maxlength='10' class='formular' value='".$infodaten['tag']."'>";
                            
                    array_push($uebergabedaten[tag], $infodaten['tag']);
                            echo 
                    "        </td>";
                            echo 
                    "        <td width='149' valign='middle' align='center'> ";
                            echo 
                    "          <input type='text' name='' size='10' maxlength='10' class='formular' value='".$infodaten['datum']."'>";
                            
                    array_push($uebergabedaten[datum], $infodaten['datum']);
                            echo 
                    "        </td>";
                            echo 
                    "        <td width='70' valign='middle' align='center'> ";
                            echo 
                    "          <input type='text' name='' size='5' maxlength='5' class='formular' value='".$infodaten['azeit']."'>";
                            
                    array_push($uebergabedaten[azeit], $infodaten['azeit']);
                            echo 
                    "        </td>";
                            echo 
                    "        <td width='84' valign='middle' align='center'> ";
                            echo 
                    "          <input type='text' name='' size='5' maxlength='5' class='formular' value='".$infodaten['ezeit']."'>";
                            
                    array_push($uebergabedaten[ezeit], $infodaten['ezeit']);
                            echo 
                    "        </td>";
                            echo 
                    "        <td width='141' align='center'> <input type='checkbox' name='delete".$n."' value='löschen'></td>";
                            echo 
                    "      </tr>";
                            
                    $infodaten mysql_fetch_array($info,MYSQL_BOTH);    
                        }
                    session_register("uebergabedaten"); 

                    Comment


                    • #11
                      Wie...

                      schreib ich das denn wenn ich das Feld meinem anderen array
                      "uebergabedaten" anhängen will???

                      Comment


                      • #12
                        PHP Code:
                        $infodaten mysql_fetch_array($info,MYSQL_BOTH);
                        $uebergabedaten=array(tag => array(),
                                
                        datum => array(),
                                
                        azeit => array(),
                                
                        ezeit => array());
                        $n 0;
                        while (
                        $infodaten != FALSE || $n 7)
                            {
                        echo 
                        "        <td width='111' valign='middle' align='center'>";
                        echo 
                        "          <input type='text' name='uebergabedaten['tag'][]' size='10' maxlength='10' 
                        class='formular' value='"
                        .$infodaten['tag']."'>";
                        echo 
                        "        </td>";
                        echo 
                        "        <td width='149' valign='middle' align='center'> ";
                        echo 
                        "          <input type='text' name='uebergabedaten['datum'][]' size='10' maxlength='10'
                         class='formular' value='"
                        .$infodaten['datum']."'>";
                        echo 
                        "        </td>";
                        echo 
                        "        <td width='70' valign='middle' align='center'> ";
                        echo 
                        "          <input type='text' name='uebergabedaten['azeit'][]' size='5' maxlength='5' 
                        class='formular' value='"
                        .$infodaten['azeit']."'>";
                        echo 
                        "        </td>";
                        echo 
                        "        <td width='84' valign='middle' align='center'> ";
                        echo 
                        "          <input type='text' name='uebergabedaten['ezeit'][]' size='5' maxlength='5' 
                        class='formular' value='"
                        .$infodaten['ezeit']."'>";
                        echo 
                        "        </td>";
                        echo 
                        "        <td width='141' align='center'> <input type='checkbox' name='delete".$n."' value='löschen'></td>";
                        echo 
                        "      </tr>";
                        $infodaten mysql_fetch_array($info,MYSQL_BOTH);
                        $n ++;    
                        }
                        session_register("uebergabedaten"); 
                        So habe ich das jetzt gemacht @mrhappiness aber mein array ist und
                        bleibt leer... Was mache ich nur schon wieder Falsch???
                        Ergebniss durch:
                        PHP Code:
                        print_r ($uebergabedaten);
                        $test each($uebergabedaten);
                        echo 
                        "<br>";
                        print_r ($test); 
                        kommt raus:
                        Array ( [tag] => Array ( ) [datum] =>
                        Array ( ) [azeit] => Array ( ) [ezeit] => Array ( ) )
                        Array ( [1] => Array ( ) [value] => Array ( ) [0] => tag [key] => tag )

                        Comment


                        • #13
                          Hallo

                          PHP Code:
                          echo "          <input type='text' name='uebergabedaten['tag'][]' size='10' maxlength='10' 
                          class='formular' value='"
                          .$infodaten['tag']."'>"
                          konzentriere Dich bitte bei den Anführungs zeichen; so erhältst Du eine Variable mit Namen "uebergabedaten[" .

                          besser ist:
                          PHP Code:
                          echo "          <input type='text' name='uebergabedaten[\"tag\"][]' size='10' maxlength='10' 
                          class='formular' value='"
                          .$infodaten['tag']."'>"
                          noch 2 Tips: die while-condition ist falsch, der Operator muß 'and' (&&) sein,
                          weil so wird die Schleife auf jeden Fall 7 mal durchlaufen,
                          auch wenn es nur zB 3 Datensätze gibt.

                          PHP Code:
                          $uebergabedaten=array(tag => array(),
                                  
                          datum => array(),
                                  
                          azeit => array(),
                                  
                          ezeit => array()); 
                          wenn Du arrays assoziativ benutzt, mach es assoziativ
                          ...array("tag" => ..., "datum"=> ..., ...)

                          Im FM steht seit Jahren 'why $foo[bar] works, but is completly wrong' .

                          nice day
                          Quickborner

                          Comment

                          Working...