PHP MySQL来宾出席名单

PHP MySQL来宾出席名单,php,mysql,post,checkbox,Php,Mysql,Post,Checkbox,我正在写一份出席名单,我想用于即将到来的活动 当一个人登录到该网站时,它可以选择他/她和其他人是否会出席活动 if ($res && mysql_num_rows($res) >= 1) { echo '<form method="post" action="guest.php">'; echo '<table border="10"> <tr> <td>Name&l

我正在写一份出席名单,我想用于即将到来的活动

当一个人登录到该网站时,它可以选择他/她和其他人是否会出席活动

if ($res && mysql_num_rows($res) >= 1)
{
     echo '<form method="post" action="guest.php">';
     echo '<table border="10">
        <tr>
            <td>Name</td>
            <td>Present</td>
        </tr>';

    while ($row = mysql_fetch_array($res))
    {
        echo '<tr>
            <td>'.$row['guestId']." ".$row['firstName'].'</td>
            <td><input type=\'checkbox\' name=\'present[]\' value='.$row['guestId'].'></td>
        </tr>';
    }

    echo '</table>';
    echo '<input type="submit" name="submit" value="submit">';

} else {
    echo 'No data found!';
}

有更好的方法吗?因为我无法想象这是正确的方法。

你的代码不错,有很多不同的方法可以做到这一点

如果要创建项目,我建议您查看MVC(模型视图控制器),这里有一个教程:

还有一些框架,如codeigniter、cakePHP、YII(),可以帮助您制作一个MVC应用程序,而且它更具组织性、面向对象、安全性


编辑:作为@MadaraUchiha的推荐,这里是使用PDO的链接,它们是安全的:

您可以通过一个查询插入多行:

INSERT INTO present 
(gastId, present)
VALUES
( 1, 1 ),
( 2, 0 ),
( 3, 1 )
或者您可以使用mysqli和准备好的语句:

$mysqli = new mysqli(/* Connection information here */);
$stmt = $mysqli->prepare("INSERT INTO present (gastId, present) VALUES ( ?, 1 )");
$stmt->bind_param("i", $value);
foreach($_POST['present'] as $value) {
   $stmt->execute();
}
$stmt->close();
$mysqli->close();

是的,请转义输入变量并使用
mysqli.*
。请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO。还可以看到他正在使用表格进行布局和
mysql\uquot
。我把那个代码称为“坏的”。@MadaraUchiha我编辑了它,它还可以,因为它应该可以工作,但我改变了它,谢谢
$mysqli = new mysqli(/* Connection information here */);
$stmt = $mysqli->prepare("INSERT INTO present (gastId, present) VALUES ( ?, 1 )");
$stmt->bind_param("i", $value);
foreach($_POST['present'] as $value) {
   $stmt->execute();
}
$stmt->close();
$mysqli->close();