こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpによるデータベース操作について(MySQL)

http://www.yc.tcu.ac.jp/~yamada/doc/mysql/win/0602.html
のサイトを参考に以下のような「データベースの内容を表示させる」プログラムを書いたのですが、うまく表示されません。(webブラウザで確認したところまっさらなページで何も表示されません)

ちなみに、私はレンタルサーバを借りており、その中で作成したデータベースにphpMyAdminにてテーブルやカラムの作成を行いました。以下のプログラムは「db_sample.php」という名前で保存(エンコード:utf-8)し、レンタルサーバーの公開しているフォルダ「httpdocs」にffftpにてアップロードしています。バージョンは、phpMyAdmin2.11.11.3と、php4.1?(最新の5.2よりひとつ前のもの)
ここでは仮に
ホスト名:aaa.com (←これは独自に作成したドメイン名でいいのかな?)
ユーザー名:user
パスワード:pass
データベース名:db
テーブル名:person
とします。

----------以下プログラム------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript" />

<title></title>

</head>
<body>
<?php
//データベースサーバ名の設定
$db_host = "aaa.com";

//ユーザ名の設定
$db_user = "user";

//パスワードの設定
$db_passwd = "pass";

//データベースサーバへの接続
$db = mysql_connect($db_host,$db_user,$db_passwd);

//データベース名の設定
$db_name = "db";

//データベースの選択
mysql_select_db($db_name,$db);

//SQL文の設定
$str_sql = "select * from person";

//SQL文の実行
$rs = mysql_query($str_sql,$db);

//結果セット内の各レコードを順次参照し、連想配列に代入
while($arr_item = mysql_fetch_assoc($rs))
{

//レコード内の各フィールド名と値を順次参照
foreach($arr_item as $key => $value)
{
//フィールド名と値を表示
print "[{$key}] = {$value}<br>\n";
}
print "<br>\n";
}

//データベースサーバへの接続の切断
mysql_close($db);

?>
</body>
</html>
------------------------------------------

わかる方いらっしゃいましたらご教授願います。

投稿日時 - 2011-05-06 03:52:41

QNo.6717288

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

以下でデバッグしてみてください

$link = mysql_connect($db_host,$db_user,$db_passwd) or die("connect error: " . mysql_error());
mysql_select_db($db_name);
$rs = mysql_query($str_sql,$link) or die("query error: ".mysql_error());
while($arr_item = mysql_fetch_array($result,MYSQL_ASSOC))

投稿日時 - 2011-05-07 12:05:04

ANo.2

ドキュメント宣言を取れば表示されると思います^^
これ取っちゃって下さい↓
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

投稿日時 - 2011-05-06 18:44:32

補足

みなさんのご意見参考にさせていただきました!様々なご回答ありがとうございます。しかし、結局表示されませんでした;;

また別の詳しいプログラムを書いてみたところ、実際に「mysqlへの接続」、「データベースの選択」、「クエリの送信」、「mysqlの切断」までは無事にできているようです(ホスト:aaa.comにて)。最後までエラーは表示されずに、TRUE(1)の値を返してくれました。テーブル内のデータ数も正確に取得できています。

そのプログラムを検証してみたところ、mysql_fetch_assoc関数の中身に問題がある($key, $value に代入されていない?)みたいです。
もしくはデータベースの設定にテーブルの中身に関するアクセス制限などの設定があるのでしょうか?

SQLに関しては全くの初心者で申し訳ないです><

投稿日時 - 2011-05-06 23:58:08

$db_host = "localhost";
に直せば問題は解決できると思いますよ。

投稿日時 - 2011-05-06 17:54:59

補足

localhostではアクセスできませんでした;;
独自のドメイン名で接続からテーブルの読み込みまではできているのですが、肝心のテーブルの内容(カラム)が表示されません。
なにかご存知でしたらアドバイスお願いします!

投稿日時 - 2011-05-07 00:01:49

あなたにオススメの質問