昨日の復習として
fuku49.html フォームより三角形の底辺、高さ入力 --> fuku49.php 三角形の面積計算を表示
x<html>
<head>
<meta charset="utf-8">
<title>三角形の面積の計算</title>
</head>
<body>
<h1>三角形の面積の計算</h1>
<form method="post" action="fuku49.php">
<p>底辺入力<input type="text" name="bottom"></p>
<p>高さ入力<input type="text" name="height"></p>
<p><input type="submit"></p>
</body>
</html>
fuku49.php fuku49.htmlで入力された値より三角形の面積計算を表示
xxxxxxxxxx
<?php
$b = $_POST['bottom'];
$h = $_POST['height'];
$s =triangle($b,$h);
echo "三角形の面積=". $s;
function triangle($b,$h){
$s = $b * $h / 2;
return $s;
}
?>
fuku44.php
arrayを使って7人以上の点数を設定し。その点数明細、合計、
平均点を表示。オプションとして、偏差、標準偏差を表示。
xxxxxxxxxx
<?php
$point = array("10","20","30","40","50","60","70");
$n = count($point);
$s = 0;
$i = 0;
while($i<$n){
echo "[$i]->$point[$i]<br>";
$s += $point[$i];
++$i;
}
echo "合計:$s<br>";
echo "平均:" . $s/$n . "<br>";
echo "<br>◆標準偏差<br>"; //s=√1/nΣ(x1-x)二乗
$h = $s/$n;
$m = 0;
for($i=0; $i<$n; ++$i){ //Σ n回
$hensa = $point[$i] - $h; //(x1-x)
echo "[$i] : $hensa<br>";
$m += pow($hensa,2); //↑の(x1-x)を、二乗
}
echo $m ."<br>";
$a = sqrt($m/($n-1)); //ルート(平方根)
echo $a;
?>
ren31.php セッションデータの表示
xxxxxxxxxx
<?php
//セッション開始
session_start();
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
//セッションデータを追加
$_SESSION['sdata1']=123;
$_SESSION['sdata2']="hello world";
$_SESSION['sdata3']=array(123,"hello world","PHP入門");
echo "セッションデータを追加しました。<br>";
echo $_SESSION['sdata1'] . "<br>";
echo $_SESSION['sdata2'] . "<br>";
echo "<hr>";
echo $_SESSION['sdata3'][0] . "<br>";
echo $_SESSION['sdata3'][1] . "<br>";
echo $_SESSION['sdata3'][2] . "<br>";
?>
</body>
</html>
ren20.php データベース kaiin の生成
xxxxxxxxxx
<?php
//PHPからMySQLデータベースを生成する
echo "データベース作成<br>";
$db = new PDO('mysql:host=localhost','root','root');
$db->exec('CREATE DATABASE kaiin');
echo "終了<br>";
?>
ren21.php テーブル user の生成
xxxxxxxxxx
<?php
echo "ユーザーテーブル作成<br>";
$pdo = new PDO("mysql:host=localhost;dbname=kaiin","root","root");
$sql = "CREATE TABLE IF NOT EXISTS`user`"
."("
."uname varchar(5) primary key,"
."psw varchar(10),"
."namae varchar(30),"
."email varchar(30)"
.");";
$stmt = $pdo -> prepare($sql);
$stmt -> execute();
echo "作成終了<br>";
?>
ren22.html ユーザー登録フォーム作成
xxxxxxxxxx
<html>
<head>
<meta charset="utf-8">
<title>ユーザー登録フォーム</title>
</head>
<body>
<h2>ユーザー登録フォーム</h2>
<form method="post" action="ren22a.php">
<table>
<tr><td>ユーザー名</td><td><input type="text" name="uname"></td></tr>
<tr><td>パスワード</td><td><input type="text" name="psw"></td></tr>
<tr><td>氏名</td><td><input type="text" name="namae"></td></tr>
<tr><td>e-mail</td><td><input type="text" name="email"></td></tr>
</table>
<input type="submit">
</form>
<a href="ren24.php">一覧表示</a>
</body>
</html>
ren22a.php データベース kaiin のテーブル user にPDOを使ってinsertする。
xxxxxxxxxx
<?php
$username = $_POST['uname'];
$pass = $_POST['psw'];
$name = $_POST['namae'];
$email = $_POST['email'];
$pdo = new PDO("mysql:host=localhost;dbname=kaiin","root","root"); //MySQLに接続
$st = $pdo->prepare("INSERT INTO user VALUES(?,?,?,?)");
$st-> execute(array($username,$pass,$name,$email));
$pdo = null; //MySQLから切断
echo "ユーザー登録完了";
?>
<a href="ren24.php">一覧表示</a>
ren23.php テーブルユーザーの一覧表表示
xxxxxxxxxx
<html>
<head>
<title>
商品テーブル内容表示
</title>
<body>
<table border="1">
<tr><td>ユーザー名</td><td>パスワード</td><td>氏名</td><td>email</td></tr>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=kaiin", "root" ,"root"); // MySQLに接続
$st = $pdo->query("SELECT * FROM user");
while($row=$st->fetch()){
$uname = htmlspecialchars($row['uname']);
$psw = htmlspecialchars($row['psw']);
$namae = htmlspecialchars($row['namae']);
$email = htmlspecialchars($row['email']);
echo"<tr><td>$uname</td>
<td>$psw</td>
<td>$namae</td>
<td>$email</td></tr>";
}
$pdo=null; // MySQLから切断
?>
</table>
</body>
</html>
renn24.php renn23.phpの画面の中に修正リンクと削除リンクをつくる。 修正リンクをクリックすると ---> update24.phpに飛ばす ---> さらに update24a.phpへ 削除リンクをクリックすると ---> delete24.phpに飛ばす
xxxxxxxxxx
<html>
<head>
<meta charset="utf-8">
<title>フォームから修正と削除</title>
</head>
<body>
<table border="1">
<tr>
<td>ユーザー名</td><td>パスワード</td><td>氏名</td><td>email</td><td></td><td></td>
</tr>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=kaiin","root","root");
$st = $pdo->query("SELECT * FROM user");
while($row=$st->fetch()){
$uname = htmlspecialchars($row['uname']);
$psw = htmlspecialchars($row['psw']);
$namae = htmlspecialchars($row['namae']);
$email = htmlspecialchars($row['email']);
echo"<tr><td>$uname</td>
<td>$psw</td>
<td>$namae</td>
<td>$email</td>
<td><a href='update24.php?uname=$uname'>修正</a></td>
<td><a href='delete24.php?uname=$uname' onclick=\"return confirm('削除していいですか?')\">削除</a></td></tr>";
}
$pdo = null; //切断
?>
</table>
<a href="ren22.html">データ追加</a>
</body>
</html>
xxxxxxxxxx
<?php
//htmlspecialchars ? 特殊文字を HTML エンティティに変換する
$uname = htmlspecialchars($_GET['uname']); //url?uname=$unameで送られた物をゲット
$pdo = new PDO("mysql:host=localhost;dbname=kaiin","root","root");
$st = $pdo->prepare("SELECT * FROM user WHERE uname = ?"); //sql文を準備
$st->execute(array($uname)); //上記prepareを実行、$unameが?に入る(バインドする?)
$row = $st->fetch(); //$stのデータを順番に取得している(ただし今回は1レコード)
$uname = htmlspecialchars($row['uname']); //$rowはレコードの連想配列が入っている(今回は1レコード)
$psw = htmlspecialchars($row['psw']); //配列の$row['psw']を、$pswに入れる
$namae = htmlspecialchars($row['namae']);
$email = htmlspecialchars($row['email']);
?>
<form method = "post" action="update24a.php">
<table>
<tr><td>ユーザー名</td><td><input type="text" name="uname" value="<?php echo $uname ?>"></td></tr>
<tr><td>パスワード</td><td><input type="text" name="psw" value="<?php echo $psw ?>"></td></tr>
<tr><td>氏名</td><td><input type="text" name="namae" value="<?php echo $namae ?>"></td></tr>
<tr><td>e-mail</td><td><input type="text" name="email" value="<?php echo $email ?>"></td></tr>
</table>
<input type = "hidden" name = "old_uname" value="<?php echo $uname ?>"><br>
<!--↑見えないinputのvalueに古いunameを入れて記憶して、update24a.phpに送るよ!-->
<input type = "submit">
</form>
xxxxxxxxxx
<?php
$pdo = new PDO("mysql:dbname=kaiin","root","root");
$st = $pdo->prepare("UPDATE user SET uname=?,psw=?,namae=?,email=? WHERE uname=?");
$st-> execute(array($_POST['uname'],$_POST['psw'],$_POST['namae'],$_POST['email'],$_POST['old_uname']));
//$_POSTでさっきのフォームからのデータをゲット
//?の順番に入っているので、最後のWHERE uname=?の?部分にold_unameが入る
?>
修正完了しました。<br>
<a href="ren24.php">一覧に戻る</a>
xxxxxxxxxx
<?php
$pdo = new PDO("mysql:host=localhost;dbname=kaiin","root","root");
$st = $pdo->prepare("DELETE FROM user WHERE uname=?");
$st->execute(array($_GET['uname']));
?>
削除が完了しました。<br>
<a href="ren24.php">一覧に戻る</a>
以上