カテゴリー
PHP

meiboへ入力フォームから入力する

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<TITLE>ユーザ情報登録</TITLE>
</HEAD>
<body background="y8b.gif">

 <?php
  require_once ("newpage8.php");
  print $APPTITLE;
  MyTitlePrint("実験開始!meibo入力フォーム 表示!!");
?>

<FORM method="POST" action="MeiboFormInput.php">
<TABLE border="0">
  <TBODY>
    <TR>
      <TD>meiboid</TD>
      <TD><INPUT size="10" type="text" name = "meiboid"></TD>
    </TR>
    <TR>
      <TD>氏名</TD>
      <TD><INPUT size="30" type="text" name="simei"></TD>
    </TR>
    <TR>
      <TD>住所都道府県以下</TD>
      <TD><INPUT size="50" type="text" name="ikajyusyo"></TD>
    </TR>
    <TR>
      <TD>都道府県コード</TD>
      <TD><INPUT size="10" type="text" name="todouhukencode"></TD>
    </TR>
      <TR>
      <TD colspan="2" align="center"><BR>
      <INPUT type="submit" value=" 登録 " name="exereg"> <INPUT type="submit" value="キャンセル" name="cancelreg"></TD>
    </TR>
  </TBODY>
</TABLE>
</FORM>


<p><a href="newpage10.php">書き込みインデックスへ戻る</a></p>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<title></title>
</head>
<body background="y8b.gif">

 <?php
  require_once ("newpage8.php");
  print "$APPTITLE";
  MyTitlePrint("実験開始!入力フォーム決定データ 表示します!!");
?>

<?php

  if (isset($_POST['exereg'])) {
    print "登録ボタンが、クリックされました!" . "<BR>";
    print "meiboid → "            . $_POST["meiboid"] . "<BR>";
    print "氏名 → "        . $_POST["simei"] . "<BR>";
    print "以下住所 → "            . $_POST["ikajyusyo"] . "<BR>";
    print "都道府県コード → "        . $_POST["todouhukencode"] . "<BR>";

    $dsn = "mysql:host=".$hostname.";dbname=".$dbname;

    try {
    $dbh = new PDO($dsn, $username, $password);

    // 接続を使用する
    $Meiboid = $_POST["meiboid"];
    $Simei = "'" . $_POST["simei"] . "'";
    $Ikajyusyo = "'" . $_POST["ikajyusyo"] . "'";
    $Todouhukencode = $_POST["todouhukencode"];
    $sql = "INSERT INTO `isamstar2_wp1`.`meibo` (`id`, `namae`, `jyusyo`, `prefcode`) VALUES
                                                ($Meiboid, $Simei, $Ikajyusyo, $Todouhukencode)";

    $stmt= $dbh->query( $sql);

    $sql = 'select id, namae, jyusyo, prefcode from meibo';
    $stmt= $dbh->query( $sql);

    echo "<table>\n";
    echo "\t<tr><th>id</th><th>namae</th><th>jyusyo</th><th>prefcode</th></tr>\n";
    while( $result = $stmt->fetch( PDO::FETCH_ASSOC ) ){
      echo "\t<tr>\n";
      echo "\t\t<td>{$result['id']}</td>\n";
      echo "\t\t<td>{$result['namae']}</td>\n";
      echo "\t\t<td>{$result['jyusyo']}</td>\n";
      echo "\t\t<td>{$result['prefcode']}</td>\n";
      echo "\t</tr>\n";
    }
    echo "</table>\n";

    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }


    //INSERT INTO `isamstar2_wp1`.`meibo` (`id`, `namae`, `jyusyo`, `prefcode`) VALUES
    //   ($_POST["meiboid"], $_POST["simei"], $_POST["ikajyusyo"], $_POST["todouhukencode"]);
    //INSERT INTO `isamstar2_wp1`.`meibo` (`id`, `namae`, `jyusyo`, `prefcode`) VALUES (5, '阿弖流為', '奥州市', 3);

    print "$APPFOOTER"; 
  }
  elseif (isset($_POST['cancelreg'])) {
    print "キャンセルボタンがクリックされました!";
  }

?>
<p><a href="newpage10.php">書き込みインデックスへ戻る</a></p>

</body>
</html>

上の部分が、実際の入力をする部分です。下の部分が決定したデータを表示して、meiboへ書き込む部分です。

入力を表示する部分はありますが、テーブルへ書き込むルーティンがありません。ここでトラブルしてます。リストアップprintが出来ているので、簡単かと思ってましたが、insert intoが出来ません。エラーにはなりませんが、phpMyAdminでも載ってませんし、何より直後のリストアップに出てきません。なので中途半端な状態になっています。

 上のコードは、解決しています。何が問題だったかと言うと、文字列のデータ、名前と住所の部分をシングルクオートで括っていなかったのが問題でした。

inserted by FC2 system