1	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
PHPとデータベースの連携2
2	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
処理理の流流れ
検索索条件を⼊入⼒力力する1 2 3
HTML
情報を受け取る&
SQLを実⾏行行する
情報を検索索する
PHP SQL
4 結果を返却する5 結果を受け取る&
結果を表⽰示する
3	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
今回もイメージで捉えましょう!
l  phpMyAdminでSQLを実⾏行行した時を思い出そう!
l  STEP① まずはログインして、データベースを選択
l  STEP② 次に実⾏行行したいSQLを記述
l  STEP③ 実⾏行行ボタンを押す
l  STEP④ 結果が表⽰示される
	
①〜③までは、INSERTの時と同様です。	
	
このステップをプログラムに変換します!
4	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP①  ログインしてデータベースに接続
<?php
//まず、プログラムとデータベースとを接続
//サーバー名、ユーザー名、パスワードの順番で書いてあります
$connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”);
//insert時の⽇日本語⽂文字化けを回避する
mysql_query(”SET NAMES utf8”,$connect);
/*
ここに続きを書いていきます。
*/
//最後にDBへの接続を切切断
mysql_close($connect);
?>
復復習
5	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP②  次に実⾏行行したいSQLを記述
l  SQLを試そう
-  product_tblから全ての情報を取得する
-  「*」を使うことで全てのカラムの情報を取得できる
エラーがでなければ
OK!
6	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP②  次に実⾏行行したいSQLを記述
<?php
$connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”);
mysql_query(”SET NAMES utf8”,$connect);
/*
まずは先ほどうまくいったselect⽂文をPHPでechoしてみる。
ここではまだデータベースから取得できない。
*/
echo ”select * from product_tbl”;
mysql_close($connect);
?>
7	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP③  実⾏行行ボタンを押す
<?php
$connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”);
mysql_query(”SET NAMES utf8”,$connect);
/*
構⽂文 $result = mysql_db_query(DBデータベース名,実⾏行行したいSQL)
SQLから帰ってきた検索索結果を  変数$result に仮保存できる
※変数の名前はresultじゃなくてもOK
*/
$result = mysql_db_query(”DBデータベース名”,
”select * from product_tbl” );
mysql_close($connect);
?>
8	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(1/4)
l  変数「$result」には何が⼊入ってるか?
-  resultにはSQLを実⾏行行した時の結果が表形式で⼊入っています。
$result = mysql_db_query(”DBデータベース名”,
”select * from product_tbl”);
result の中身
9	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(2/4)
<?php
$connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”);
mysql_query(”SET NAMES utf8”,$connect);
$result = mysql_db_query(”DBデータベース名”,”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);
?>
10	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(3/4)
l  mysql_fetch_assoc ってなにものですか?
-  mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議!                              
結果が1⾏行行ずつ取り出されて$kekkaに仮保存されていきます。
-  切切り取れなくなると$kekkaには空を表す null が⼊入ります。
$kekka = mysql_fetch_assoc($result);
1ループ⽬目
2ループ⽬目
11	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
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{
echo $kekka[’product_name’];
echo $kekka[’price’];
echo ”<br>”;
}
product_̲tblの列列(カラム)名
12	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
お疲れ様でした!!

System2 for h

  • 1.
    1 Copyright (c) 株式会社HEARTQUAKE All rights reserved . PHPとデータベースの連携2
  • 2.
    2 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 処理理の流流れ 検索索条件を⼊入⼒力力する1 2 3 HTML 情報を受け取る& SQLを実⾏行行する 情報を検索索する PHP SQL 4 結果を返却する5 結果を受け取る& 結果を表⽰示する
  • 3.
    3 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 今回もイメージで捉えましょう! l  phpMyAdminでSQLを実⾏行行した時を思い出そう! l  STEP① まずはログインして、データベースを選択 l  STEP② 次に実⾏行行したいSQLを記述 l  STEP③ 実⾏行行ボタンを押す l  STEP④ 結果が表⽰示される ①〜③までは、INSERTの時と同様です。 このステップをプログラムに変換します!
  • 4.
    4 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP①  ログインしてデータベースに接続 <?php //まず、プログラムとデータベースとを接続 //サーバー名、ユーザー名、パスワードの順番で書いてあります $connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”); //insert時の⽇日本語⽂文字化けを回避する mysql_query(”SET NAMES utf8”,$connect); /* ここに続きを書いていきます。 */ //最後にDBへの接続を切切断 mysql_close($connect); ?> 復復習
  • 5.
    5 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP②  次に実⾏行行したいSQLを記述 l  SQLを試そう -  product_tblから全ての情報を取得する -  「*」を使うことで全てのカラムの情報を取得できる エラーがでなければ OK!
  • 6.
    6 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP②  次に実⾏行行したいSQLを記述 <?php $connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”); mysql_query(”SET NAMES utf8”,$connect); /* まずは先ほどうまくいったselect⽂文をPHPでechoしてみる。 ここではまだデータベースから取得できない。 */ echo ”select * from product_tbl”; mysql_close($connect); ?>
  • 7.
    7 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP③  実⾏行行ボタンを押す <?php $connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”); mysql_query(”SET NAMES utf8”,$connect); /* 構⽂文 $result = mysql_db_query(DBデータベース名,実⾏行行したいSQL) SQLから帰ってきた検索索結果を  変数$result に仮保存できる ※変数の名前はresultじゃなくてもOK */ $result = mysql_db_query(”DBデータベース名”, ”select * from product_tbl” ); mysql_close($connect); ?>
  • 8.
    8 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(1/4) l  変数「$result」には何が⼊入ってるか? -  resultにはSQLを実⾏行行した時の結果が表形式で⼊入っています。 $result = mysql_db_query(”DBデータベース名”, ”select * from product_tbl”); result の中身
  • 9.
    9 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(2/4) <?php $connect = mysql_connect(”localhost”,”DBユーザ名”,”DBパスワード”); mysql_query(”SET NAMES utf8”,$connect); $result = mysql_db_query(”DBデータベース名”,”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); ?>
  • 10.
    10 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(3/4) l  mysql_fetch_assoc ってなにものですか? -  mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議!                               結果が1⾏行行ずつ取り出されて$kekkaに仮保存されていきます。 -  切切り取れなくなると$kekkaには空を表す null が⼊入ります。 $kekka = mysql_fetch_assoc($result); 1ループ⽬目 2ループ⽬目
  • 11.
    11 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 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{ echo $kekka[’product_name’]; echo $kekka[’price’]; echo ”<br>”; } product_̲tblの列列(カラム)名
  • 12.
    12 Copyright (c) 株式会社HEARTQUAKE All rights reserved . お疲れ様でした!!