<html>
<head> <title>データを変更する(MySQL)</title>
</head>
<body>
<h3>データを変更する(MySQL)</h3>
<?php ;
// 接続設定(サーバ/データベース/ユーザ/パスワード) $sv = "localhost"; $dbname = "bookdb"; $user = "root"; $pass = "nisi"; // 表示文字コード $disp_enc = "SJIS";
// データの文字コードを変換する関数 function cnv_dbstring($string, $enc)



☆☆{ ・functionとはユーザ定義関数を入力する場合に使用。

// 文字コードを変換する $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);
↑mb_convert_encoding(文字列,to-encoding,from-encoding)で文字列 $stringの文字エンコーディングを$det_encから$encに変換 } else { return $string; } }




☆☆文字列 strの文字エンコーディングを from-encoding から to-encoding に変換します。 from-encoding により変換前の文字エンコーディ ング名が指定されます。これは、配列またはカンマ区切りの文字列とす ることが可能です。省略時のデフォルトは内部文字エンコーディングで す。


//データをSQL用に変換 function cnv_sqlstr($string) { if (!get_magic_quotes_gpc()) { return addslashes($string); } }

// データベースに接続する $conn = mysql_connect($sv, $user, $pass) or die("接続エラー");



☆☆・connect→db_connectをデータベースに接続する機能として定義する。 引数ではなく接続情報を格納した$connを使います。
↑mysql_connect(サーバ, ユーザ, パスワード)でMySQLサーバに接続.


☆☆ die(メッセージ)は接続できない場合にメッセージを出力して終了すること mysql_select_db($dbname) or die("接続エラー"); ↑mysql_select_db(データベース名)でMySQLサーバ内のデータベースに接続. die(メッセージ)は接続できない場合にメッセージを出力して終了すること

//変更するデータを取得 if (count ($_post) > 0) { $id= $_post["id"]; $bookname= $_post["bookname"]; $author = $_post["author"]; $pub = $ post["pub"]; $price = $ post["price"];$year=$post["year"];
$point = $post["point"];
//データが送信されたときはデータを変更 if (strlen($id) and stren($nam) and stren($pre) and stren($ag)) { ・⇒

//データを変更 $sql ="UPDATE table1 SET



☆☆・updateはデータを変更する場合にupdate〜setを使って利用する。 追加のときと同じように、文字コードはデータベースに合わせて使用。 nam = '".cnv_sqlstr(cnv_dbstring($nam, $db_enc))."', pre= '".cnv_sqlstr(cnv_dbstring($nam, $db_enc))."', ag= ".$ag." WHERE (id =".$id.");";



☆☆・whereを記述しないと変えたくないデータも変わってしまうので注意する。 mysql_query($sql,$conn) or die("データ変更エラー");   } }



// データを取り出す $sql = "SELECT id, bookname,author pub, price,year,point FROM table1 ORDER BY id"; $res = mysql_query($sql, $conn) or die("データ抽出エラー");
↑mysql_query(SQL,接続ID)でMySQLサーバ内のデータベースをSQLで操作する .die(メッセージ)は接続できない場合にメッセージを出力して終了すること
// mysql_query()関数でデータを取り出すSQLを実行します。 取り出したデータは、次のように1行ずつ処理し、ブラウザに表示させています。



// 取り出したデータを表示する echo "<table border=\"1\">"; echo "<tr>"; echo "<td>ID</td>"; echo "<td>名前</td>"; echo "<td>出身</td>"; echo "<td>年齢</td>"; echo "</tr>";



☆☆・ehoは文字を取り出したいときに使う。 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {

↑mysql_fetch_array(クエリ実行結果,結果タイプ)でクエリ実行結果を 配列に格納したものを1行ずつ返す.結果タイプの MYSQL_ASSOCは結果を連想配列として取得すること echo "<form method=\"post\" action=\"".$SERVER ["PHP_SELF"]."\">"; echo "<tr>"; echo"<td><input type=\"submit\" value=\"変更\" name=\"sub1\"></td>";




☆☆・valueは現在の属性ノードオブジェクトにおける属性名と属性値を返します。



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>"; } echo "</table>";
// 接続を解除する mysql_close($conn);



↑mysql_close(接続ID)で接続を解除 ・サーバやユーザ、パスワードでmy sqlに接続 (メッセージを表示できない場合はメッセージを出力として使う。
) ?>
</body>
</html>