0

MySQLテーブルにデータを挿入するための簡単なフォームを初めて構築しようとしています。ただし、機能していません。

これは次の形式です。

<form action="" method="post">
Select Park : <select name="park_id">
              <option value="">Select Park</option>

              <?php foreach ($res as $row) {

              printf('<option value="%s">%s</option>' . PHP_EOL, $row['park_id'], $row['name']);

               } ?>

    </select>

Headline: <input type="text" name="headline">
<br>
Story: <input type="textbox" name="story">
<br>
Date: <input type="date" name="date">

Password :<input type="password" value="" name="password" id="password">

<input type="submit">
</form>

これはphpです:

if(isset($_POST['submit'])){

$stmt = $db->prepare("INSERT INTO tpf_newstest(headline,story,date,park_id) VALUES(:headline,:story,:date,:park_id)");
$stmt->execute(array(':headline' => $headline, ':story' => $story, ':date' => $date, ':park_id' => $park_id));
$affected_rows = $stmt->rowCount();
}

それはすべて同じ index.php ファイル内にあります。私が間違ったことについてのアイデアはありますか?ありがとう

編集:それが役立つ場合、これは完全なページです

try
{
    $pdo = new PDO('mysql:host=localhost;dbname=*', '*','******');

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->exec('SET NAMES "utf8"');
}
    catch (PDOException $e)
{
    $output = 'Unable to connect to the database server.';
    include 'output.html.php';
    exit();
}

$output = 'Theme Park Database initialized';


$qry = "select park_id, name from tpf_parks order by name";
$res = $pdo->query($qry);


if(isset($_POST['submit'])){

$stmt = $db->prepare("INSERT INTO tpf_newstest(headline,story,date,park_id) VALUES(:headline,:story,:date,:park_id)");
$stmt->execute(array(':headline' => $headline, ':story' => $story, ':date' => $date, ':park_id' => $park_id));
$affected_rows = $stmt->rowCount();
}

?>

<form action="" method="post">
Select Park : <select name="park_id">
              <option value="">Select Park</option>

              <?php foreach ($res as $row) {

              printf('<option value="%s">%s</option>' . PHP_EOL, $row['park_id'], $row['name']);

               } ?>

    </select>

Headline: <input type="text" name="headline">
<br>
Story: <input type="textbox" name="story">
<br>
Date: <input type="date" name="date">

Password :<input type="password" value="" name="password" id="password">

<input type="submit">
</form>
4

2 に答える 2

2

submit問題は、$_POST に名前が付けられたフィールドがまったくないため、挿入のコードが実行されないことだと思います。この問題を解決するには、フィールドをチェックする代わりに、submitなどの他のフィールドをチェックします。park_iddate

希望が役立ちます!

于 2013-08-10T14:09:42.097 に答える
1

name提出する必要はありません。では、どのようにしif(isset($_POST['submit'])){て真になることができますか?次のようにhtmlを調整して試すことができます

<input type="submit" name="submit" value="Submit" />
于 2013-08-10T14:10:01.417 に答える