2016-03-20 5 views
0

Meine db-Tabelle aktivitet hat eine Spalte namens status. Die Funktionalität ist, wenn ein Ereignis abgeschlossen ist, soll der Status von Ej Klar(Not Done) zu Klar(Done) mit Hilfe eines Auswahlformulars und einer Übermittlungsschaltfläche gewechselt werden. Ich habe hier zwei Tage hintereinander gesessen, ich habe viele verschiedene Ansätze ausprobiert, aber ich kann es einfach nicht zum Funktionieren bringen. Bitte helfen Sie mir das herauszufinden?Wie aktualisiere ich die Datenbank mit dem ausgewählten Formular und senden?

Heres der Code

<?php 
$pdo = new PDO('mysql:dbname=orion_db2;host=localhost', 'root', '');                
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  

echo "<table class='table' border='2'>"; 
echo "<th style='background-color:#334d4d;'><h1>Tid</h1></th>"; 
echo "<th style='background-color:#334d4d;'><h1>Uppgift</h1></th>"; 
echo "<th style='background-color:#334d4d;'><h1>Status</h1></th>"; 

foreach($pdo->query('SELECT * FROM aktivitet;') as $row){                   
    $status = $row['status']; 
    if($status == 'Ej Klar'){ 
     $status = 'Ej Klar'; 
    } 
    elseif($status == 'Klar'){ 
     $status = 'Klar'; 
    } 

    echo "<tr>";                                  
    echo "<td><h2>".$row['tid']."</h2></td>";                             
    echo "<td><h2>".$row['uppgift']."</h2></td>"; 
    echo "<td><h3><form method='POST' action='index.php' name='stat'><select id='status' name='status' size='1' required><option value='Ej Klar' <?php if($status == 'Ej Klar') echo 'selected'; ?>Ej Klar</option><option value='Klar' <?php if($status == 'Klar') echo 'selected'; ?>Klar</option></optgroup><input type='submit' value='Ändra' /></select></form></h3></td>"; 
    echo "</tr>";                                  
}  
echo "</table>"; 
if(isset($_POST['submit'])) { 
    $status2 = $_POST['status']; 
    $sql = "UPDATE members SET status=:status WHERE status=:status"; 
    $stmt = $db->prepare($sql); 
    $stmt->bindValue(":status", $status2, PDO::PARAM_STR); 
    $stmt->execute(); 
} 
?> 
+0

Was ist das Verhalten/Ergebnis, wenn Sie dies ausführen? –

+0

Das Semikolon in hier 'foreach ($ pdo-> query ('SELECT * FROM aktivitet;') als $ row)' stoppt seine Ausführung genau dort. –

+0

und das 'if (isset ($ _ POST ['submit'])) {...}' wird nie ausgelöst. Hier sehen Sie selbst http://php.net/manual/en/function.error-reporting.php - Plus, 'if ($ status == 'Ej Klar')' das ist Groß-und Kleinschreibung. –

Antwort

0

enter image description here

Dies ist, wie es aussieht. Muss man irgendwie die DB auf diese Weise updatieren?