System2
- 2. 㻞
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
処理理の流流れ
1検索索条件を⼊入⼒力力する23
HTML
情報を受け取る&
SQLを実⾏行行する
情報を検索索する
5結果を受け取る&4結果を返却する
結果を表⽰示する
PHPSQL
- 3. 㻟
今回もイメージで捉えましょう!
l phpMyAdminでSQLを実⾏行行した時を思い出そう!
l STEP① まずはログインして、データベースを選択
l ᅇ䛿㼎㻝㼋㼟㼍㼠㼛䜢㑅ᢥ䛧䜎䛧䛯
l STEP② 次に実⾏行行したいSQLを記述
l STEP③ 実⾏行行ボタンを押す
l STEP④ 結果が表⽰示される
䐟ࠥ䐡䜎䛷䛿䚸㻵㻺㻿㻱㻾㼀䛾䛸ྠᵝ䛷䛩䚹
䛣䛾䝇䝔䝑䝥䜢䝥䝻䜾䝷䝮䛻ኚ䛧䜎䛩䟿
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 4. 㻠
STEP① ログインしてデータベースに接続
復復習
?php
//まず、プログラムとデータベースとを接続
//サーバー名、ユーザー名、パスワードの順番で書いてあります
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
//insert時の⽇日本語⽂文字化けを回避する
mysql_query(”SET NAMES utf8”,$connect);
/*
ここに続きを書いていきます。
*/
//最後にDBへの接続を切切断
mysql_close($connect);
?
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 5. 㻡
STEP② 次に実⾏行行したいSQLを記述
l SQLを試そう
- product_tblから全ての情報を取得する
- 「*」を使うことで全てのカラムの情報を取得できる
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
エラーがでなければ
OK!
- 6. 㻢
STEP② 次に実⾏行行したいSQLを記述
?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
/*
まずは先ほどうまくいったselect⽂文をPHPでechoしてみる。
ここではまだデータベースに追加されない。
*/
echo ”select * from product_tbl”;
mysql_close($connect);
?
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 7. 㻣
STEP③ 実⾏行行ボタンを押す
?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
/*
構⽂文 $result = mysql_db_query(データベース名 = b1_sato,実⾏行行したいSQL)
SQLから帰ってきた検索索結果を 変数$result に仮保存できる
※変数の名前はresultじゃなくてもOK
*/
$result = mysql_db_query(”b1_sato”,
”select * from product_tbl” );
mysql_close($connect);
?
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 8. 㻤
STEP④ 結果の表⽰示(1/4)
l 変数「$result」には何が⼊入ってるか?
- resultにはSQLを実⾏行行した時の結果が表形式で⼊入っています。
$result = mysql_db_query(”b1_sato”,
”select * from product_tbl”);
result 䛾୰㌟
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 9. 㻥
STEP④ 結果の表⽰示(2/4)
?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
$result = mysql_db_query(”b1_sato” , ”select * from product_tbl” );
/*
$resultには何⾏行行のデータが⼊入っているかはその都度度変わるので
while構⽂文を使って取得出来たデータ数分ループさせる
*/
while(true) {//無限に繰り返せ
$kekka = mysql_fetch_assoc($result); //$resultから1⾏行行⽂文切切り取る
if( $kekka == null ){ //もし、$kekka が 空(から)=null だったら
break; //ループを脱出
}else{ //$kekka が 空(から)でなかったら
echo $kekka[’product_name’]; //切切り取ったデータのうちの製品名を表⽰示
echo ”br”;
}
}
mysql_close($connect);
?
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 10. 㻝㻜
STEP④ 結果の表⽰示(3/4)
l mysql_fetch_assoc ってなにものですか?
- mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議!
結果が1⾏行行ずつ取り出されて$kekkaに仮保存されていきます。
$kekka = mysql_fetch_assoc($result);
- 切切り取れなくなると$kekkaには空を表す null が⼊入ります。
1ループ⽬目
2ループ⽬目
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .
- 11. 㻝㻝
STEP④ 結果の表⽰示(4/4)
l mysql_fetch_assoc したあとに・・・
- mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議!
結果が1⾏行行ずつ取り出されていき、$kekkaに1⾏行行分のデータが
格納されます。
- $kekkaにデータベースのカラム名を指定すると、指定された
カラムのデータが取得できます。
$kekka = mysql_fetch_assoc($result);
if( $kekka== null ){
break;
}else{
product_̲tblの列列(カラム)名
echo $kekka[’product_name’];
echo $kekka[’price’];
echo ”br”;
}
Copyright (c) ᰴᘧ♫HEART QUAKE All rights reserved .