如何使用选择表单更新数据库并提交?

时间:2016-03-20 15:27:02

标签: php database select sql-update form-submit

我的db-table aktivitet有一个名为status的列。功能是在事件完成后,您应该在选择表单和提交按钮的帮助下将状态从Ej Klar(Not Done)切换到Klar(Done)。 我已经连续两天坐在这里,我尝试了很多不同的方法,但我不能让它工作。请帮我解决这个问题?

这是代码

<?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();
}
?>

1 个答案:

答案 0 :(得分:0)

enter image description here

这就是它的样子。要以这种方式改变数据库吗?