データベースMySQLから読み出したデータを表示できない - PHPプロ!Q&A掲示板
2714
- 0P
- 0P
データベースMySQLから読み出したデータを表示できない
質問日時 / 2010年5月18日 11:37 回答数 / 2件
Questioner: masahiroyamamoto
Tweet
キーワード / MySQL   データ部の表示表現を変えると表示される  
データベースのデータが表示されません。
ただ、データベースのフィールド名を表示する部分までは同じで、
データ部分以降を取り出し表示する部分を別形式で表現すると、正しく表示されます。
*PHPプログラム1:何も表示されない
<!-- HTMLの開始 -->
<HTML>
<HEAD>
<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=\"Shift_JIS\">
<TITLE>address1</TITLE>
</HEAD>
<?php
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--mysql
$dbHandle = mysql_connect("localhost","root","mysql")
or die("can not connect db\n");
//MySQLのクライアントの文字コードをsjisに設定
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
//db名 addressdb
$db = "addressdb";
//SQL文 tab1表から全行を取り出し、number列の昇順に整列する
$sql = "select * from address order by number";
//SQL文を実行する
$rs = mysql_db_query($db,$sql);
//列数を取得する
$num = mysql_num_fields($rs);
?>
<!-- HTML文を出力 テーブルの開始を指定 -->
<table border=1>
<?php
//test表の列数と同じ回数を繰り返す
for ($i=0;$i<$num;$i++){
?>
<!--HTML文を出力 列名を <td>で囲んで出力-->
<td>
<?php
//フィールド名を表示する
mysql_field_name($rs,$i)
?>
</td>
<?php
}
//test表の行数と同じ回数を繰り返す
while($row=mysql_fetch_array($rs)){
?>
<!-- HTML文を出力 表の行の開始<tr> を出力 -->
<tr>
<?php
//test表の列数と同じ回数を繰り返す
for($j=0;$j<$num;$j++){
?>
<!--//HTML文を出力 列の内容を <td>で囲んで出力 -->
<td>
<?php
$row[$j]
?>
</td>
<?php
}
?>
<!--//HTML文を出力 表の改行</tr> を出力-->
</tr>
<?php
}
?>
<!--//HTML文を出力 テーブルの終了を指定-->
</table>
<?php
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle);
?>
<br>
<a href="address.php">メニュー</a><br>
*PHPプログラム2:正しく表示される。
<!-- HTMLの開始 -->
<HTML>
<HEAD>
<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=\"Shift_JIS\">
<TITLE>address1</TITLE>
</HEAD>
<?php
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--mysql
$dbHandle = mysql_connect("localhost","root","mysql")
or die("can not connect db\n");
//MySQLのクライアントの文字コードをsjisに設定
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
//db名 addressdb
$db = "addressdb";
//SQL文 tab1表から全行を取り出し、number列の昇順に整列する
$sql = "select * from address order by number";
//SQL文を実行する
$rs = mysql_db_query($db,$sql);
//列数を取得する
$num = mysql_num_fields($rs);
?>
<!-- HTML文を出力 テーブルの開始を指定 -->
<table border=1>
<?php
//test表の列数と同じ回数を繰り返す
for ($i=0;$i<$num;$i++){
?>
<!--HTML文を出力 列名を <td>で囲んで出力-->
<td>
<?php
//フィールド名を表示する
mysql_field_name($rs,$i)
?>
</td>
<?php
}
//test表の行数と同じ回数を繰り返す
while($row=mysql_fetch_array($rs)){
?>
<!-- HTML文を出力 表の行の開始<tr> を出力 -->
<tr>
<?php
//test表の列数と同じ回数を繰り返す ≪注 PHP1プログラムとこれ以降が違う≫
for($j=0;$j<$num;$j++){
//HTML文を出力 列の内容を <td>で囲んで出力
print("<td>".$row[$j]."</td>");
}
//HTML文を出力 表の改行</tr> を出力
print("</tr>");
}
//HTML文を出力 テーブルの終了を指定
print("</table>");
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle);
?>
<br>
<a href="address.php">メニュー</a><br>
以上です。よろしくお願いします。
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!