php講習 1/14
・今日も掃除は東浜でした。
・今日も掃除は東浜でした。
<1時間目>
・本日の予定
デバックの方法について(ポイント)説明
掲示板の再構成
・準備
eclipse,zampp,mySQLクライアントの起動
bbsプロジェクトにtest.phpを作成
・デバックの手段
プログラムの中でどこを通ったか(処理したか)確認したいとき、
プログラムの途中で足跡を入れる。
echo "L 12" ; # 12行目
変数の内容を確認したいとき、出力を入れる。
print '変数$a = ' .$a . "<br />" ;
・htmlでformを作成
<html>
<head>
<title>デバック方法</title>
</head>
<body>
<h1>デバックについて</h1>
<form action="./test.php" method="post">
<input type="text" name="a" />
<input type="submit" name="send" />
</form>
</body>
</html>
<head>
<title>デバック方法</title>
</head>
<body>
<h1>デバックについて</h1>
<form action="./test.php" method="post">
<input type="text" name="a" />
<input type="submit" name="send" />
</form>
</body>
</html>
・phpで受け取る
# 変数
$a = $_POST["a"] ;
$a = $_POST["a"] ;
・実際に画面で動かしてみると、入力値によって、出力が変わる。
では実際にどの処理を通っているのか、足跡を入れてみる。
echo "L 12" ; # 12行目
・phpで変数の種類チェックを追加
if (is_numeric($a)) { # 変数の種類が数値かチェック
echo "L 17 <br />" ; # デバック出力
print "入力値は数値です<br />";
if ($a==1) {
echo "L 17 <br />" ; # デバック出力
print "入力値は数値です<br />";
if ($a==1) {
...
<2時間目>
・phpで変数が数字以外のチェックを追加
if ($a=="a") {
echo "L 38 <br />" ; # デバック出力
print "aです" ;
echo "L 38 <br />" ; # デバック出力
print "aです" ;
...
・出力を、「ボタンが押されたとき」にする。
if ($_POST["send"]) { # ボタンが押されたとき
<3時間目>
・確認が終わったらデバックで出力した命令を削除する。
・次は、DBを使った場合のデバックのしかた(test2.php)
準備として、mySQLクライアントを上げておく
・SQL文でデータを読んだときの出力確認方法
(ソースの表示を見るなら<pre>はなくてもいい)
while ($row1 = mysql_fetch_array($result)) {
print $row1 ; # デバック出力
print "<pre>" ;
print_r( $row1) ; # デバック出力
print "</pre>" ;
var_dump($row1);
print "<pre>" ;
var_export($row1) ;
print "</pre>" ;
}
print $row1 ; # デバック出力
print "<pre>" ;
print_r( $row1) ; # デバック出力
print "</pre>" ;
var_dump($row1);
print "<pre>" ;
var_export($row1) ;
print "</pre>" ;
}
・ネスト(reply)も見るときに追加
# クエリ、投稿の返信
$sql = "SELECT * FROM reply WHERE comment_id = '".$row1["id"]."' ORDER BY created_at DESC";
$result1 = mysql_query($sql);
# 返信内容の表示
while ($row2 = mysql_fetch_array($result1)) {
print "L 42<br />" ;
var_dump($row2);
}
$sql = "SELECT * FROM reply WHERE comment_id = '".$row1["id"]."' ORDER BY created_at DESC";
$result1 = mysql_query($sql);
# 返信内容の表示
while ($row2 = mysql_fetch_array($result1)) {
print "L 42<br />" ;
var_dump($row2);
}
<4時間目>
・出力結果の味方解説
・昨日の作業で終了していない人は、今日の解説を参考に仕上げて下さい。
・出来た人は、課題
phpのソースとhtmlのソースが混在しています。
なるべくphpとhtmlを分けて書いてみましょう。
(現在のファイルを書き直す)
・ヒント
<h1>表示のテスト</h1>
<table>
<?php while($row1 = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $row1["nickname"] ?>
<td><?php echo $row1["content"] ?>
<td><?php echo $row1["created_at"] ?>
</tr>
<table>
<?php while($row1 = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $row1["nickname"] ?>
<td><?php echo $row1["content"] ?>
<td><?php echo $row1["created_at"] ?>
</tr>
<?php } ?>
</table>・掲示板が出来ていない人は、個別に状況を確認します。
<5時間目>
・掲示板が出来ていない人は、引き続き個別に状況を確認します。
・今週で掲示板は終了です。
・phpのソースはメールで送ります。
0 件のコメント:
コメントを投稿