Ankündigung

Einklappen
Keine Ankündigung bisher.

Verknüpfen von Variablen

Einklappen

Neue Werbung 2019

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

  • Verknüpfen von Variablen

    Hoi!

    Ich habe eine SQL-Datenbank, die ich updaten möchte. Dazu folgender Code:
    PHP-Code:
    <form method="POST" action="<? echo $PHP_SELF ?>">
     <table width="654">
      <?
      $sql = "SELECT * FROM preise"; 
            $result = mysql_query($sql,$db);  
            $i=1;
            while($data = mysql_fetch_array($result)) { ?>
                <tr>
          <td width="492" height="19">Tour</td>
          <td width="491" height="19">Preis</td>
          <td width="32" height="19">Datum</td>
        </tr>
        <tr>
          <td width="492" height="1">
          <input type="hidden" name="edit<? echo $i; ?>" value="<? echo $data[id]; ?>"> 
          <input type="text" name="tour<? echo $i; ?>" size="20" value="<? echo $data[tour]; ?>"></td>
          <td width="491" height="1"><input type="text" name="preis<? echo $i ?>" size="4" value="<? echo $data[preis]; ?>">€</td>
          <td width="32" height="1"><? echo date("d.m.y",$data[datum]); ?></td>
        </tr>
            <?
            $i++;
             } // while($data = mysql_fetch_array($result))
             
      ?>
      <input type="hidden" name="i" value="<? echo $i ?>">
      </table>
      

    <input type="submit" value="Abschicken" name="change"><input type="reset" value="Zurücksetzen" name="B2"></p>
    </form>

    ?>
    --> Ich lese also in die Values der Formular-Textfelder die vorhandenen Werte der Datenbank ein. Mit dem Klick auf Absenden soll nun geupdatet werden...

    Dazu habe ich mir folgenden Code einfallen lassen:
    PHP-Code:
    <?php
    $datum 
    time();
            
    $u 1;
            while(
    $u<$i) {
            
    $tour $tour$u;
                    
    $preis $preis$u;
            
    $sql "UPDATE preise SET tour='$tour', preis='$preis', datum='$datum' WHERE id='$edit".$u."'";     
            echo 
    "$sql
    "
    ;
            
    mysql_query($sql) or die(mysql_error());
            
    $u++;
            }
            echo 
    "$u Daten erfolgreich geändert!";
        }
    ?>
    Das Problem liegt eindeutig bei der Definition von $tour und $preis. Wenn ich dort z.B. "$tour = $tour1; eingebe, funktioniert das Updaten. Nur wird dann natürlich alles mit dem Wert von $tour1 überschrieben.
    Das Problem: Wie kann ich die 1 durch das $u ersetzen?
    (Bei der jetzigen Ausführung wird für tour1 "1" , für tour2 "12" für tour3 "123" usw. eingetragen...)

    Für Hilfe bin ich immer zu haben

  • #2
    nur am Rande:
    Dein Code ist abartig. Da fehlen einige ; und '. Außerdem heißt es $_SERVER['PHP_SELF'] und $data['id'].

    Desweiteren würde ich mit $_POST['tour'] und $_POST['preis'] arbeiten.
    Dein Problem habe ich nicht ganz verstanden, versuch mal bitte genauer zu erklären.

    Kommentar


    • #3
      Zitat von TripleT
      Dein Code ist abartig.
      Jo. Deswegen auch nur eine mögliche Antwort aufgrund des Titels.

      http://de.php.net/manual/de/language...assignment.php
      [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

      Kommentar


      • #4
        Die Schleife soll alle per post übergebenen Werte in die SQL-Datenbank updaten.
        Es wird ja übergeben tour1=test&preis1=30&datum1=sonstewas&id1=1 bzw. tour2=Hallo&preis2=20&datum1=sonstewas&id2=2

        Diese sollen nun von der Schleife verarbeitet werden.

        Ich dachte mir, dass ich den Wert $tour in die MySQL-Datenbank reinschreibe. Den gibt es aber nicht, sondern nur $tour1 $tour2 usw.
        Also wollte ich die Zahlen durch das $u (Zählervariable) ersetzen.
        Sodass $tour=$tour$u (also bei u=1 -> $tour1, wie in Post übergeben).
        Beim nächsten Durchlauf wäre u=2. Dann also $tour=tour2 in SQL-DB eintragen usw.usf.

        Kommentar


        • #5
          achso.
          $tour.=$u;

          Kommentar


          • #6
            haut nicht hin...
            Er schreibt dann immer 1 für id=1 2 für id=2 usw. in die DB, nicht den Text

            Kommentar


            • #7
              $tour="tour";
              $tour.=$u;

              bisel nachdenken kann man doch.

              Kommentar


              • #8
                Ich glaube, das hier ist gesucht: http://de2.php.net/language.variables.variable

                Allerdings sind Arrays bequemer.

                Kommentar


                • #9
                  hi zappel!

                  arrays? wie leg ich die für mich hochkomplizierten arrays an??
                  das übergebene ist ja zudem schon ein array ($_POST['tour'])

                  Kommentar


                  • #10
                    Zitat von Rasenkantenstein
                    arrays? wie leg ich die für mich hochkomplizierten arrays an??
                    Kannst Du schon überhaupt was alleine, außer Fragen stellen?

                    Kommentar


                    • #11
                      meikel.. Das ist doch ein Anfänger-Forum... für Anfänger halt.

                      Ich habe mal $tour[$u] probiert... das geht aber auch nicht. Anders kann ich mir das mit Arrays im Moment nicht vorstellen...

                      Kommentar


                      • #12
                        Zitat von Rasenkantenstein
                        meikel.. Das ist doch ein Anfänger-Forum... für Anfänger halt.
                        Na und?

                        Verwende einfach $_POST[] und alles wird gut.

                        PHP-Code:
                        <?php

                        $datum 
                        time();

                        for (
                        $i=1$i<=$_POST['i']; $i++)
                        {
                          
                        $sql sprintf("UPDATE preise SET tour='%s', preis='%s', datum='%s' WHERE id='%s' "
                            
                        $_POST['tour' $i], # kompletten Index einfach zusammensetzen :-)
                            
                        $_POST['preis' $i],
                            
                        $datum,
                            
                        $_POST['edit' $i]);

                        # Abfrage wegschicken...

                        }
                        ?>
                        Anders kann ich mir das mit Arrays im Moment nicht vorstellen...
                        Schlechte Voraussetzungen, auf Arrays zu setzen und die erforderlichen Kenntnisse in FAQ und Handbuch nicht anlesen zu wollen.

                        Kommentar

                        Lädt...
                        X