☆データを追加する☆


<html>
『↑HTMLは、文章の意味を示す為の物です。』
<head>
『↑見出し部であることを示します。見出し部はブラウザには表示されません。 タイトルやドキュメントを記述できます。』
<title>データを追加する(MySQL)</title> </head> <body>
『↑表示される 本体部であることを示します。』
<h3>データを追加する(MySQL)</h3> <?php
『↑PHPが始まるという意味です。』
// 接続設定(サーバ/データベース/ユーザ/パスワード) $sv = "localhost"; $dbname = "bookdb"; $user = "root"; $pass = "nisi";
『↑$svなどを変数といい、変数は値を格納することが出来る領域で、      ドル記号($)につづけて、任意の変数名をつけた形式で定義されます。』
// 表示文字コード
$disp_enc = "SJIS"; データベース文字コード $db_enc = "EUC-JP";
// データの文字コードを変換する関数
function cnv_dbstring($string, $enc) {
// 文字コードを変換する
$det_enc =
mb_detect_encoding($string);
『↑mb_detect_encoding(文字列)で     文字列$stringの文字エンコーディングを検出し,それを返す』
if ($det_enc and $det_enc != $enc) { return
mb_convert_encoding($string, $enc, $det_enc);            
『↑文字列 strの文字エンコーディングを from-encoding から to-encoding に変換します。

str とは、変換する文字列です。』
} else { return $string; } }
//データをSQLに変換

function cnv_sqlstr($string) {
if (!get_magic_quotes_qpc()) { return addslashes($string)+ } else{ return $string; } }
『↑if( )の中は条件式、 { }の中は、条件を満たすとき実行する処理、 else{ }の中は、条件を満たさないとき実行する処理です。 もし〜なら…をして、そうでなければ…をするというように、 条件によって2つの処理を切り替えたい時はif〜elseを使います。』
//データベースに接続する
$conn =
mysql_connect($sv, $user, $pass) or die("接続エラー");
『↑mysql_connect(サーバ、ユーザ、パスワード)でMySQLサーバに接続。die(メッセージ)は 接続できない場合にメッセージを出力して終了すること。』
mysql_select_db($dbname) or die("接続エラー");
if(count($_POST) >0) { $nam = $_POST["nam"]; $pre = $_POST["pre"]; $ag = $_POST["ag"];
『↑ifは{ }の中の条件をみたすとき実行する処理』
//データが送信されたときはデータを追加
if(strlen($nam) and strlen($pre) and strlen($ag)) { //データを追加 $sql = "
INSERT INTO table1(nam,pre,ag) VALUES( '".cnv_sqlstr(cnv_dbstring($nam,$db_enc))."' '".cnv_sqlstr(cnv_dbstring($pre,$db_enc))."' ".$ag.");"; mysql_query($sql,$conn) or die("データ追加エラー"); echo "<p>追加されたデータのID:".mysql_insert_id($conn); } }
『↑INSERT INTOで複数の行の挿入、更新します。また、mysql_insert_id()を使うと、追加された値を取得することができます。』

//データを取り出す
$sql = "SELECT id,bookname,author,pub,price,year,point FROM table1 ORDER BY id"; $res = mysql_query($sql, $conn) or die("データ抽出エラー");
『↑mysql_query()で、データを取り出すSQLを実行します。                   取り出したデータは1行ずつ処理してブラウザに表示させます。』
//取り出したデータを表示する
echo "<table border=\"1\">";
『↑echoとは文字列を出力するときに使います。他の関数と比べて、プログラム中への        登場回数は1番多い命令です。』
echo "<tr>"; echo "<td>id</td>"; echo "<td>bookname</td>"; echo "<td>author</td>"; echo "<td>pub</td>";echo"<td>price</td>";
echo"<td>year</td>";echo
"<td>point</td>"; echo "</tr>"; while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>".$row["id"]."</td>"; echo "<td>".cnv_dbstring($row["nam"], $disp_enc)."</td>"; echo "<td>".cnv_dbstring($row["pre"], $disp_enc)."</td>"; echo "<td>".$row["ag"]."</td>"; echo "</tr>"; }
『↑mysql_fetch_arrayは(クエリ実行結果、結果タイプ)で、クエリ実行結果を配列に 格納したものを1行ずつ返す。結果タイプのMy SQL、Assocは結果を連想配列として取得することです。』
echo"<from method="\POST\" action=\"".$SERVER["PHP_SELF"]."\">"; echo"<tr>"; echo"<td><input type=\"submit\" value=\"追加\" name=\"sub1\"></td>"; echo"<td><input type=\"text\" name=\"id\"></td>"; echo"<td><input type=\"text\" name=\"bookname\"></td>";
echo"<td><input type=\"text\" name=\"author\"></td>";
echo"<td><input type=\"text\" name=\"pub\"></td>";
echo"<td><input type=\"text\" name=\"price\"></td>";
echo"<td><input type=\"text\" name=\"year\"></td>";
echo"<td><input type=\"text\" name=\"point\"></td>";
echo"</td>"; echo"</form>";
『↑<input>タグのtype属性を"hidden"に設定したもので、フォーム内に不可視フィールドを作成する場合に使われます。』
echo "</table>";
『↑テーブルを閉じるという意味です。』
//接続を解除する
mysql_close($conn);
『↑接続を解除するという意味です。』

?> </body> </html>








                             BACK