1

今後のイベントに使用したい出席リストを作成しています。

人がウェブサイトにログオンするとき、彼/彼女と他の人がイベントに出席するかどうかを選択することができます。

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!';
}

ここではguestId、データベースへの書き込みに使用する値にを書き込んでいます。

    if( isset($_POST['present']) ) {
        foreach($_POST['present'] as $value){
            $query=mysql_query("INSERT INTO present (gastId, present) VALUES (".$value.", 1)");
            $resultadd=mysql_query($query) or die("Errore insert G: ".mysql_error());
        }
    }

これを行うためのより良い方法はありますか?これが正しい方法だとは想像できないからです。

4

2 に答える 2

1

あなたのコードは悪くありません、それをするための多くの異なった方法があります。

プロジェクトを作成する場合は、MVC(model-view-controller)を確認することをお勧めします。ここにチュートリアルがあります:http://www.nathandavison.com/posts/view/11/custom -php-mvc-tutorial-part-1-はじめに

また、codeigniter、cakePHP、YII(http://www.phpframeworks.com/top-10-php-frameworks/)のようないくつかのフレームワークがあり、MVCアプリを作成できます。また、より整理されたOOP、安全性もあります。

編集: @MadaraUchihaの推奨事項として、ここにPDOを使用するためのリンクがあります。これらは安全です:http://php.net/manual/en/pdo.prepared-statements.php

于 2012-10-16T19:50:03.410 に答える
1

1つのクエリで複数の行を挿入できます。

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();
于 2012-10-16T20:41:20.573 に答える