みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

phpのエラーについてです

mysql上のデータをphpでブラウザに表示するコードを書いています。
下記のプログラムを実行した所
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\shop\index.php on line 18
というようなエラーが表示されます。
本の通りに進めているので間違っていないはずなんですが・・
どこが成立していないのでしょうか???

<?php
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');

$recordSet = mysql_query('SELECT m.name, i.* FROM makers m, my_
items i WHERE m.id=i.maker_id ORDER BY id DESC');
?>

<table width="100%">
<tr>
<th scope="col">ID</th>
<th scope="col">メーカー</th>
<th scope="col">商品名</th>
<th scope="col">価格</th>
</tr>
<?php
while ($table = mysql_fetch_assoc($recordSet)) {
?>
<tr>
<td><?php print(htmlspecialchars($table['id'])); ?></tb>
<td><?php print(htmlspecialchars($table['name'])); ?></tb>
<td><?php print(htmlspecialchars($table['item'])); ?></tb>
<td><?php print(htmlspecialchars($table['price'])); ?></tb>
</tr>
<?php
}
?>
</table>

投稿日時 - 2011-03-08 17:11:57

QNo.6578783

すぐに回答ほしいです

質問者が選んだベストアンサー

『C:\xampplite\htdocs\index.php の第18行に誤りがあります。』
『mysql_fetch_assoc() は、第1パラメータがリソースであるべき』のエラーです。

18行目がどこかわからないが
『while ($table = mysql_fetch_assoc($recordSet)) {』多分これかな?

『$recordSet』がSQLの結果になっていないためエラーになってます。
原因は、いろいろ
1.DBにデータがない、
2.DBのフィールドとSELECT文が一致していない
3.接続先のDBを間違えている。
4.そもそもPHPでMYSQLが使えない(PHP.iniでロードしてない)
などなど、
「mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');
$recordSet = mysql_query('SELECT m.name, i.* FROM makers m, my_

それぞれの関数の実行結果を確認するようにすれば、どこで原因があるのかわかると思います。
調べてみてください。

あと、「mysql_fetch_assoc() expects parameter 1 to be resource」で検索するとそれなりに情報がヒットしますよ
(英語も多いですが、そこは雰囲気で確認してみるべし)

投稿日時 - 2011-03-08 17:26:48

ANo.1

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

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

回答(1)

あなたにオススメの質問