3件づつデータを取得するために以下のSQLを実行しました。
SELECT * FROM $mysql_table ORDER BY date LIMIT 0,3
mysql_fetch_rowを利用して変数展開を行ったのですが、最初の1件のみしか取得できません。
3件分のデータを取得できると思ったのですが、何か勘違いしているのでしょうか?
手元の環境ではこんな感じで期待通りに動いてます。
mysql_fetch_rowは先にも説明されている方がいらっしゃいますように、レコードを1行分しか取得できないので、whileか何かでループを回してやると良いかと思います。
<?php $hostname = "localhost"; $uname = "USERNAME"; $upass = "PASSWORD"; $dbname = "DBNAME"; $tblname = "TABLENAME"; //MySQL に接続する。 if( !$res_dbcon = mysql_connect( $hostname, $uname, $upass) ){ print "MYSQL への接続に失敗しました。"; exit; } mysql_select_db( $dbname, $res_dbcon ); $res_result = mysql_query( "SELECT * from {$tblname} order by date limit 0,3", $res_dbcon ); //結果を表示 while( $row = mysql_fetch_row( $res_result ) ){ var_dump( $row ); echo "<br>\n"; } mysql_close( $res_dbcon ); ?>
mysql_fetch_row()では、指定した結果 ID が指す結果から「 1 行分」のデータしか取得してくれません。
以上です。
それは知っていますが、mysql_fetch_arrayでも同じ結果です。
手元の環境ではこんな感じで期待通りに動いてます。
mysql_fetch_rowは先にも説明されている方がいらっしゃいますように、レコードを1行分しか取得できないので、whileか何かでループを回してやると良いかと思います。
<?php $hostname = "localhost"; $uname = "USERNAME"; $upass = "PASSWORD"; $dbname = "DBNAME"; $tblname = "TABLENAME"; //MySQL に接続する。 if( !$res_dbcon = mysql_connect( $hostname, $uname, $upass) ){ print "MYSQL への接続に失敗しました。"; exit; } mysql_select_db( $dbname, $res_dbcon ); $res_result = mysql_query( "SELECT * from {$tblname} order by date limit 0,3", $res_dbcon ); //結果を表示 while( $row = mysql_fetch_row( $res_result ) ){ var_dump( $row ); echo "<br>\n"; } mysql_close( $res_dbcon ); ?>
ありがとうございます!
phpMyadminでは表示されるのになんでだろう?と思ってました。
ありがとうございます!
phpMyadminでは表示されるのになんでだろう?と思ってました。