Variablen verknüpfen

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

  • 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...

    Kommentar


    • #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.

      Kommentar


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

        Kommentar


        • #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...

          Kommentar


          • #6
            Re: Vielen Dank

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

            Kommentar


            • #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

              Kommentar


              • #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...

                Kommentar


                • #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...

                  Kommentar


                  • #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"); 

                    Kommentar


                    • #11
                      Wie...

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

                      Kommentar


                      • #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 )

                        Kommentar


                        • #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

                          Kommentar

                          Lädt...
                          X