MYSQL Update aus While Schleife

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

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

    Kommentar


    • #3
      Zitat von TobiaZ Beitrag anzeigen
      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>"

      Kommentar


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

        Kommentar

        Lädt...
        X