Linuxサーバより愛を込めて。

Linux(Ubuntu)サーバとダーツを愛する中年サラリーマンの日記。

プログラミング

PHPからSELECT文を発行してみる

2015/04/01

はじめてのPHP、MySQL、Apache―この1冊でPHP、MySQL、Apacheのすべてを習得できる

前回データベースの選択まで辿りつきました。今度はなにか簡単なSQLを発行してデータを表示させてみようと思います。

 

今、あるデータベース領域に↓みたいな表が格納されているとします。

T_商品リスト

商品コード 商品名 値段
011 こん棒 80
012 鉄パイプ 180
013 釘バット 500

 

この表からデータを引っこ抜いてページに表示してみましょう。

 

選択されたデータベースに対してSQLを発行するには

 

mysql_query('SQL文')

 

を用います。

 

mysql_connect('select * from T_商品リスト')

※ターミナルでSQLを実行するときに文末につける;(セミコロン)は不要です。

 

となりますのでこれをここまで作ってきた処理の中に組み込んでみます。

<html>
<head><tiele>PHPからMySQLに接続</title></head>
<body>
<?php
$link=mysql_connect('ホスト名','ユーザ名','パスワード');
if(!$link){
die('接続失敗'.mysql_error());
}
print('<p>接続成功</p>');

$db_select=mysql_select_db('データベース名',$link);
if(!$db_select){
die('選択失敗'.error());
}
print('<p>選択完了</p>');

$result=mysql_query('select * from T_商品リスト where 商品コード=011');
if(!$result){
die('クエリがおかしいよ'.error());
}
print('<p>クエリが動いたよ</p>');

$close=mysql_close($link);
if(!$close){
die('切断失敗'.mysql_error());
}
print('<p>切断しました。</p>');
?>
</body>
</html>

これを動かしてみると・・・

 

test3

 

 

どうやらクエリが動いたことは分かりますが抽出した値はどこにも出てきませんね?

 

mysql_queryが行ってくれるのはクエリの実行のみで、値を取り出すには別の処理を加えてやらないといけないようです。

 

手っ取り早く配列に格納する方法のひとつとして

 

mysql_fetch_assoc(クエリ発行結果のリソース型)

 

がありますので使ってみましょう。

 

が、これだと最初の行しか処理されず全ての結果を表示させることができません。

そこで「While ~」構文を使用して抜き出した全行を表示します。

 

これを一連の処理として纏めると・・・

<html>
<head><tiele>PHPからMySQLに接続</title></head>
<body>
<?php
$link=mysql_connect('ホスト名','ユーザ名','パスワード');
if(!$link){
die('接続失敗'.mysql_error());
}
print('<p>接続成功</p>');

$db_select=mysql_select_db('データベース名',$link);
if(!link){
die('データベース選択に失敗');
}
print('<p>データベース選択完了</p>');

$result=mysql_query('select * from T_商品リスト');
if(!$result){
die('クエリがおかしいよ'.error());
}
print('<p>クエリが動いたよ</p>');

while($row=mysql_fetch_assoc($result)){;

print('<p>商品コードは「'.$row['商品コード'].'」、</p>');
print('<p>商品名は「'.$row['商品名'].'」、</p>');
print('<p>値段は「'.$row['値段'].'円」だよ</p>');
}
$close=mysql_close($link);
if(!$close){
die('切断失敗'.mysql_error());
}
print('<p>切断しました。</p>');
?>
</body>
</html>

 

となります。

test4

 

 

いかがでしょう?

 

ちょっと見辛い感じはしますが結果は出力できたようです。

 

次はページ上のフォームに入力した値を使用してデータ抽出を行う術を検討します。

[rakuten]rakutenkobo-ebooks:11114848[/rakuten]

-プログラミング
-, ,