1	
0からのプログラミング講座
システム開発  その2
© 株式会社HEART QUAKE
本⽂文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。
2	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
登録されているデータをSELECT
3	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
処理理の流流れ
検索索条件を⼊入⼒力力する1 2 3
HTML
情報を受け取る&
SQLを実⾏行行する
情報を検索索する
PHP SQL
4 結果を返却する5 結果を受け取る&
結果をJSONで返却する
4	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
今回もイメージで捉えましょう!
l  phpMyAdminでSQLを実⾏行行した時を思い出そう!
l  STEP① まずはログインして、データベースを選択
l  今回はb1_satoを選択しました
l  STEP② 次に実⾏行行したいSQLを記述
l  STEP③ 実⾏行行ボタンを押す
l  STEP④ 結果が表⽰示される
	
①〜③までは、INSERTの時と同様です。	
	
このステップをプログラムに変換します!
5	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP①  ログインしてデータベースに接続
<?php
//まず、プログラムとデータベースとを接続
//サーバー名、ユーザー名、パスワードの順番で書いてあります
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
//select時の⽇日本語⽂文字化けを回避する
mysql_query(”SET NAMES utf8”,$connect);
//ここにあれこれ書いていく
//最後にDBへの接続を切切断
mysql_close($connect);
?>
6	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP② SQLの記述
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
/*
ここにselect⽂文を書いていきます。
今回は  jyanken_tblから全ての情報を取得してみます
*/
echo ”select * from jyanken_tbl”;
mysql_close($connect);
?>
7	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP③  実⾏行行& STEP④ 結果の表⽰示(1/5)
<?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 jyanken_tbl” );
mysql_close($connect);
?>
8	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(2/5)
l  変数「$result」には何が⼊入ってるか?
-  resultにはSQLを実⾏行行した時の結果が表形式で⼊入っています。
$result = mysql_db_query(”b1_sato”,
”select * from jyanken_tbl”);
result の中身
9	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(1/5)
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
$result = mysql_db_query(”b1_sato” , ”select * from jyanken_tbl” );
/*
$resultには何⾏行行のデータが⼊入っているかはその都度度変わるので
while構⽂文を使って取得出来たデータ数分ループさせる
*/
while(true) { //無限に繰り返せ
$kekka = mysql_fetch_assoc($result);  //$resultから1⾏行行⽂文切切り取る
if( $kekka == null ){//もし、$personが空=nullだったらループを脱出
break;
}else{
echo $kekka [’win_lose’]; //切切り取ったデータのうちの、win_loseを表⽰示
echo ”<br>”;
}
}
mysql_close($connect);
?>
10	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(3/5)
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/5)
l  トレイを上から順番にとっていくイメージ
-  積み重ねられたトレイ(=$result)の上から順番に1つずつ取っていく
(=mysql_fetch_assoc)イメージです
-  積み重ねられたトレイがなくなるまで繰り返します(=while)
-  取った1つのトレイが$kekkaです。
1ループ⽬目
2ループ⽬目
3ループ⽬目
$kekka= mysql_fetch_assoc($result);
if($kekka== null){
break;
}
12	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
STEP④ 結果の表⽰示(5/5)
l  mysql_fetch_assoc したあとに・・・
-  mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議!
結果が1⾏行行ずつ取り出されていき、$personに1⾏行行分のデータが
格納されます。
-  $personにデータベースのカラム名を指定すると、指定された
カラムのデータが取得できます。
  
$kekka = mysql_fetch_assoc($result);
if( $kekka== null ){
break;
}else{
echo $kekka[’win_lose’];
echo ”<br>”;
}
jyanken_̲tblの列列(カラム)名
13	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
データが1件しかないことがわかっている時
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
$result = mysql_db_query(”b1_sato” , ”select * from jyanken_tbl” );
/*
$resultに1件だけデータが⼊入っているのがわかっている場合は
while構⽂文を使う必要はありません。
ただし、mysql_fetch_assoc を使って1⾏行行⽬目のデータを取得する必要があります
*/
$kekka = mysql_fetch_assoc($result);  //$resultから1⾏行行⽂文切切り取る
if( $kekka == null ){//もし、$personが空=nullだったらループを脱出
break;
}else{
echo $kekka [’win_lose’]; //切切り取ったデータのうちの、win_loseを表⽰示
echo ”<br>”;
}
mysql_close($connect);
?>
補⾜足
14	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
お疲れ様でした!!

System2 ajax

  • 1.
    1 0からのプログラミング講座 システム開発  その2 © 株式会社HEARTQUAKE 本⽂文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。
  • 2.
    2 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 登録されているデータをSELECT
  • 3.
    3 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 処理理の流流れ 検索索条件を⼊入⼒力力する1 2 3 HTML 情報を受け取る& SQLを実⾏行行する 情報を検索索する PHP SQL 4 結果を返却する5 結果を受け取る& 結果をJSONで返却する
  • 4.
    4 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 今回もイメージで捉えましょう! l  phpMyAdminでSQLを実⾏行行した時を思い出そう! l  STEP① まずはログインして、データベースを選択 l  今回はb1_satoを選択しました l  STEP② 次に実⾏行行したいSQLを記述 l  STEP③ 実⾏行行ボタンを押す l  STEP④ 結果が表⽰示される ①〜③までは、INSERTの時と同様です。 このステップをプログラムに変換します!
  • 5.
    5 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP①  ログインしてデータベースに接続 <?php //まず、プログラムとデータベースとを接続 //サーバー名、ユーザー名、パスワードの順番で書いてあります $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); //select時の⽇日本語⽂文字化けを回避する mysql_query(”SET NAMES utf8”,$connect); //ここにあれこれ書いていく //最後にDBへの接続を切切断 mysql_close($connect); ?>
  • 6.
    6 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP② SQLの記述 <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); /* ここにselect⽂文を書いていきます。 今回は  jyanken_tblから全ての情報を取得してみます */ echo ”select * from jyanken_tbl”; mysql_close($connect); ?>
  • 7.
    7 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP③  実⾏行行& STEP④ 結果の表⽰示(1/5) <?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 jyanken_tbl” ); mysql_close($connect); ?>
  • 8.
    8 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(2/5) l  変数「$result」には何が⼊入ってるか? -  resultにはSQLを実⾏行行した時の結果が表形式で⼊入っています。 $result = mysql_db_query(”b1_sato”, ”select * from jyanken_tbl”); result の中身
  • 9.
    9 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(1/5) <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); $result = mysql_db_query(”b1_sato” , ”select * from jyanken_tbl” ); /* $resultには何⾏行行のデータが⼊入っているかはその都度度変わるので while構⽂文を使って取得出来たデータ数分ループさせる */ while(true) { //無限に繰り返せ $kekka = mysql_fetch_assoc($result);  //$resultから1⾏行行⽂文切切り取る if( $kekka == null ){//もし、$personが空=nullだったらループを脱出 break; }else{ echo $kekka [’win_lose’]; //切切り取ったデータのうちの、win_loseを表⽰示 echo ”<br>”; } } mysql_close($connect); ?>
  • 10.
    10 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(3/5) 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/5) l  トレイを上から順番にとっていくイメージ -  積み重ねられたトレイ(=$result)の上から順番に1つずつ取っていく (=mysql_fetch_assoc)イメージです -  積み重ねられたトレイがなくなるまで繰り返します(=while) -  取った1つのトレイが$kekkaです。 1ループ⽬目 2ループ⽬目 3ループ⽬目 $kekka= mysql_fetch_assoc($result); if($kekka== null){ break; }
  • 12.
    12 Copyright (c) 株式会社HEARTQUAKE All rights reserved . STEP④ 結果の表⽰示(5/5) l  mysql_fetch_assoc したあとに・・・ -  mysql_fetch_assoc 関数の引数に$result変数をいれると、不不思議! 結果が1⾏行行ずつ取り出されていき、$personに1⾏行行分のデータが 格納されます。 -  $personにデータベースのカラム名を指定すると、指定された カラムのデータが取得できます。    $kekka = mysql_fetch_assoc($result); if( $kekka== null ){ break; }else{ echo $kekka[’win_lose’]; echo ”<br>”; } jyanken_̲tblの列列(カラム)名
  • 13.
    13 Copyright (c) 株式会社HEARTQUAKE All rights reserved . データが1件しかないことがわかっている時 <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); $result = mysql_db_query(”b1_sato” , ”select * from jyanken_tbl” ); /* $resultに1件だけデータが⼊入っているのがわかっている場合は while構⽂文を使う必要はありません。 ただし、mysql_fetch_assoc を使って1⾏行行⽬目のデータを取得する必要があります */ $kekka = mysql_fetch_assoc($result);  //$resultから1⾏行行⽂文切切り取る if( $kekka == null ){//もし、$personが空=nullだったらループを脱出 break; }else{ echo $kekka [’win_lose’]; //切切り取ったデータのうちの、win_loseを表⽰示 echo ”<br>”; } mysql_close($connect); ?> 補⾜足
  • 14.
    14 Copyright (c) 株式会社HEARTQUAKE All rights reserved . お疲れ様でした!!