アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP+mysqlで以下のようなSQL文で処理を行ったのですがデータが返ってきません。

$sql = 'SELECT * FROM books WHERE id=3';
$recordSet = mysql_query($sql);
if(mysql_fetch_assoc($recordSet)){
while ($table = mysql_fetch_assoc($recordSet)) {
       処理
    }


mysqlの画面で
SELECT * FROM books WHERE id=3
を入力してみるとしっかりと結果が返ってきます。

ちなみに1行目を、違うテーブルの
$sql = 'SELECT * FROM podcast WHERE code=3 ORDER BY dcdate DESC LIMIT 0,3';
にしてみると、データが表示されます。


2日間かけてずっと試行錯誤してみたのですが、完全に行き詰ってしまったので、何か考えられる原因はありませんでしょうか。
よろしくお願いします。

A 回答 (1件)

SELECT * FROM books WHERE id=3 の結果が1行しか返ってこないものなのであれば、 if(mysql_fetch_assoc($recordSet)){ を実行した時点で1行分取り出し処理が行われてしまい、while に移った時点で結果リソースの中は空っぽです。

(データポインタが最終行まで行ってしまってます)
    • good
    • 0
この回答へのお礼

ifとwhileの間に
mysql_data_seek($recordSet,0);
を差し込んだところ、うまくいきました。

本当にありがとうございました!

お礼日時:2013/03/04 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!