Update von Database

Falloutboy6

Mitglied
Hi,
ich habe auch ein Problem mit Update der Datenbank. Doch leider finde ich den Fehler nicht. Habe mir das von Kaiplan angeschaut doch das hilft mir leider nicht weiter.

Ich lese hier Daten aus, und gebe aber nur eine Zelle der Datenbank in einem <select> aus. Die anderen werden nur per echo ausgegeben.

Es werden alle Datensätze ausgelesen die in der Tabelle sind. Nun möchte ich die Daten, die im <select> ausgegeben werden aktualisieren. Es soll natürlich möglich sein, mehrere zu aktualisieren.

Hier mal das Script. Wenn jemand Fragen hat bitte melden.

Dankeschön.

PHP:
<? include ('../config/config.inc.php'); ?>
<?
    echo "<html>";
    $eintrag = 'SELECT * FROM Messebau';
    echo "<form action=\"" . $_SERVER['PHP_SELF'] . "?action=41&id=$vorschau[$i]\" enctype=\"multipart/form-data\" method=\"post\">";
    echo "<table border=0 width=700>";
    echo "<tr><td colspan='5' align='center'><h1>Kunden hinzufügen | Messebau</h1></td></tr>";
    echo "<tr class='bg_ueberschrift'>
    <td>ID</td>
    <td>Kunde</td>
    <td>Untertitel</td>
    <td>Vorschau</td>
    <td>Aktion</td>
    </tr>";
    $result = mysql_query($eintrag);
    $i = 1;
    while($row = mysql_fetch_object($result)){
        echo "<tr>";
        echo "<td>$row->ID</td>";
        echo "<td>$row->kunde</td>";
        echo "<td>$row->untertitel</td>";
        echo "<td>$row->vorschau</td>";
        echo "<td>";
                if($row->vorschau == 1){
                echo"<select name=vorschau[$i] style=width:145px;>
            <option value=0>Nein</option>
            <option value=1 SELECTED>Ja</option>
            </select>";
        }
        elseif($row->vorschau == 0){
                echo"<select name=vorschau[$i] style=width:145px;>
            <option value=0 SELECTED>Nein</option>
            <option value=1>Ja</option>
            </select>";
        }
        $i++;
        echo "</td>";
        echo "</tr>";
    }
                    echo "<tr><td></td><td><input name=\"Send\" type=\"submit\" value=\"Update\"></td></tr>";
    echo "</table>";
    echo "</form>";
    echo "</html>";
    
        if($_REQUEST['Send'])
    {
   mysql_query("UPDATE Messebau SET vorschau='$vorschau' WHERE id='$vorschau[$i]'");
   echo "Der Datensatz wurde erfolgreich aktualisiert!";
  }
?>
 
Auf den ersten Blick schaut das doch garnicht so schlecht aus. Wo liegt jetzt genau das Problem? Geht das Update nur bei einem Datensatz, bei keinem Datensatz, schmeisst es eine Fehlermeldung, .... ?
Die Infos würden mir schon mal helfen dir z helfen ;)

MfG
Radioactive Man
 
Aha, aha, aha, ..... gut, hm...also:
Du lässt dir die Daten deiner DB via while - Schleife ausgeben und zählst dort $i mittels $i++ hoch. Ok, ich nehme mal an die Ausgabe stimmt, oder?
Allerdings hast du
PHP:
if($_REQUEST['Send'])
    {
   mysql_query("UPDATE Messebau SET vorschau='$vorschau' WHERE id='$vorschau[$i]'");
   echo "Der Datensatz wurde erfolgreich aktualisiert!";
  }
wobei du auf $vorschau[$i] zugreifst, aber vorher in while $i++ gezählt hast, und das immer bevor er mittels while überprüft, ob er noch results hat oder nicht. Das ist zumindest die erklärung, warum er garnichts macht.
Weiter im Text. Wenn du schon alles, was du in <select> stehen hast updaten willst, dann reicht es nicht wie im obigen Code vorzugehen, sondern du musst auch wieder ne Schleife drumrum bauen.
Zur Ausgabe der ganzen Sache wollt ich noch sagen, dass ich mir nicht sicher bin bei deinem Code in welcher Reihenfolge was passiert. Du lässt dir die DB - Ergebnisse anzeigen, dann veränderst du sie, dann lässt du sie wieder anzeigen, dann läuft erst das Update...ich hoffe du verstehst was ich meine.
 
Zurück