MYSQL Update aus While Schleife

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

  • MYSQL Update aus While Schleife

    Hallo zusammen,

    ich ( PHP Anfänger ) stehe mal wieder vor einem Problem und bräuchte von euch Profis einen Stups in die richtige Richtung.

    Und zwar rufe ich bei einem selbst erstellten Formular mehrere Werte einer Zeile ( nach Datum ) ab, die ich via While Schleife anzeige. Zum Beispiel rufe ich das Wetter von 01.01 - 03.01 ab. Das Formular zeigt mir dann z.B.

    01.01 - schnee
    02.01 - regen
    03.01 - klar

    an. Ich möchte aber die Felder nach dem Abruf ändern und die Datenbank damit updaten können.

    Da es sich ja im Grunde drei Mal um ein und dasselbe Feld handelt, das aber dreifach ausgegeben wird, schreibt er nach dem Upload überall den gleichen Wert rein, weil alle Felder den gleichen Namen haben ( while sei Dank ). Ist ja auch logisch und nachvollziehbar.

    Ich frage mich jetzt bloß: Wie schaffe ich es, dass er das Feld für jeden Tag einzeln korrekt updated?

    Der Code sieht in etwas so aus:

    PHP Code:
    echo "<form action='$submit' method='post'><table align='center' width='600'><tr><td>Datum</td><td>Wetter</td></tr>";
    $anfrage mysql_query("SELECT * FROM `wettertabelle` WHERE `date` >= '2012-01-01' AND `date` < '2012-01-04'");
    while(
    $row mysql_fetch_assoc($anfrage))
    {

    $wetter $row['wetter'];
    $date $row['date'];
    echo 
    "<tr><td>$date</td><td><input type='text' name='wetter'></td></tr>";
    $st1 $_POST[$wetter];
    }

    echo 
    "<tr><td></td><td><input type='submit' /></td></tr></table></form>"

  • #2
    Merkwürdig, du redest von UPDATE, postest aber keinen Update-Query. Warum nicht? Dieser ist doch Thema deines Postings???


    Generell: Jeder eintrag sollte eine ID haben (falls nicht, dann vergib eine). Entsprechend kannst du auch gezielt nur eine einzelne Zeile updaten:

    UPDATE tabelle SET wetter=sonnenschein WHERE id=5

    (PSEUDOCODE)

    Comment


    • #3
      Originally posted by TobiaZ View Post
      Merkwürdig, du redest von UPDATE, postest aber keinen Update-Query. Warum nicht? Dieser ist doch Thema deines Postings???


      Generell: Jeder eintrag sollte eine ID haben (falls nicht, dann vergib eine). Entsprechend kannst du auch gezielt nur eine einzelne Zeile updaten:

      UPDATE tabelle SET wetter=sonnenschein WHERE id=5

      (PSEUDOCODE)
      Der Update Query ist nicht das Problem. Das Problem ist eben, dass ich keinen Schimmer habe, wie ich das eine Feld in der While Schleife updaten soll, wenn es drei Mal die gleiche ID bekommt, da sich ja Feld "wetter" in der While Schleife befindet. Aber du hast mich gerade auf eine Idee gebracht. Ich könnte ja versuchen, das Update-Statement in der While-Schleife unterzubringen und den Namen als Datum zu individualisieren. Ich werde das mal heute Abend zu Hause testen. Der Code sähe dann in etwa so aus:

      PHP Code:
      echo "<form action='$submit' method='post'><table align='center' width='600'><tr><td>Datum</td><td>Wetter</td></tr>"
      $anfrage mysql_query("SELECT * FROM `wettertabelle` WHERE `date` >= '2012-01-01' AND `date` < '2012-01-04'"); 
      while(
      $row mysql_fetch_assoc($anfrage)) 


      $wetter $row['wetter']; 
      $date $row['date']; 
      echo 
      "<tr><td>$date</td><td><input type='text' name='$date'></td></tr>"
      $st1 $_POST['$date']; 

      if (isset(
      $_POST['$date'])) 
      {
      mysql_query=("UPDATE tabelle SET wetter='$st1' WHERE date='$date'");
      }



      echo 
      "<tr><td></td><td><input type='submit' /></td></tr></table></form>"

      Comment


      • #4
        Das Problem ist eben, dass ich keinen Schimmer habe, wie ich das eine Feld in der While Schleife updaten soll, wenn es drei Mal die gleiche ID bekommt
        Das ist sicher nicht der Sinn einer "ID", dass sie überall gleich ist.

        Comment

        Working...
        X