• ベストアンサー

MySQLで最新のデータから一回ずつ順番に取り出す方法 PHP

chukenkenkouの回答

回答No.1

何をやりたいのか、理解に苦しみます。 ある時点でn番目であっても、他ユーザなどから追加や削除があれば、何番目かは変動してしまいます。 その時点での列値の最大値、あるいは前回拾った値の次に大きい値は、例えば次のようなSQLで拾えます。 select max(id) from table_a や select 選択リスト from table_a where id>前回拾ったid値 order by id limit 1 ただ、これが希望するアドバイスなのかどうかは、現状の質問内容からは判断できません。

jazzjazzja
質問者

補足

ありがとうございます。 select max(id) from table_a だと、table_a内の中で最大のidを取得 ということになってしまうと思うのですが、 やりたい処理としては、 table_a内の最大のidのある行の、arraysetに含まれる値を取り出したいのです。 そこで、指定のidナンバーの行のarraysetの中に含まれる値を取り出すという意味で、 $query = "SELECT arrayset FROM `table_a` WHERE id= '$indexNum'"; としていました。

関連するQ&A

  • PHPでMySQLに登録されているデータのMAXと他のフィールドからデータの取得

    PHPでMySQLの最新のデータを取得し、そのデータのデータ番号を取得しようとしています。 テーブルは ID(INT型、AUTO_INCREMINT) | name(VARCHAR型) | t_touroku(DATATIME型) 1 | test1 | 2005-12-1 12:11:10 2 | TEST2 | 2005-12-2 12:56:10 となっています。 ここから最新のデータt_tourokuを検索しそのデータのIDを取得したいのですが、どうにもうまいことできません。 この場合ですと、IDの2を取りたいんです・・・。 MAXを使えばいけると思ったのですが、最新のデータしか取得できずIDを取得できませんでした・・・。 どうか、お知恵を貸して下さい。 よろしくお願いします。 バージョンは PHP 4.3.10 MySQL 3.23.58 です。

    • ベストアンサー
    • PHP
  • phpの変数をmysqlへの命令文に含みたい

    mysqlへの接続等は完璧で問題なのは、phpの変数を含んだmysqlへの命令文です。 これは試行錯誤した上で間違いないと思いました。 具体的には $link = "接続の情報"  $table = "具体的なテーブル名" $result = mysql_query("select * from $table",$link) $row = mysql_fetch_array($result, mysql_assoc) としたときに print_r($row); が無反応です。 元のソースが今、手元にないので細かいところを間違えているかもしれませんが、select文で$tableを書く代わりに直接「具体的なテーブル名」と書いたらうまくいったので、phpの変数をphpからmysqlへの命令文に含む方法に問題があったと思った次第で、この方法を教えていただきたいです。 $linkまで含めて命令できるなら、その方法も教えていただきたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPからMySQLにアクセスする方法について、

    PHPからMySQLにアクセスする方法について、 自分のとっている方法が正しいか分かりません。 現在、以下のような状態です <<< index.phpの中身(概要) >>> (1)DBのコネクト    mysql_connect("localhost", "mysql_user", "mysql_password");    mysql_select_db("mydb"); (2)DBへのアクセス    $result=mysql_query("SELECT id, name FROM mytable");    $row=mysql_fetch_array($result, MYSQL_NUM); (3)クエリーのクローズ    mysql_free_result($result); (4)exit; 公式サイトのサンプルをそのまま流用したような形なのですが、 これだとindex.phpが呼び出されるたびにDBをコネクトし直します。 現在、数万レコード単位のテーブルの読み込みが頻発するシステムを開発しています。 取得したいデータの容量自体は大きなものではなく、SELECT文も高速に動作するように WHERE文等気を使っていますが、後々のことを考えると心配になりました。 できればページが飛んでもDBの接続が保持されるようにしたいのですが 可能なのでしょうか。 また、それによってアクセスの高速化は望めるのでしょうか。 ご存知の方、お手数ですがご教授お願いいたします。

    • ベストアンサー
    • PHP
  • phpでmysqlからデータを取り出して一覧表示

    phpでmysqlからデータを取り出して一覧表示させるプログラムを造りたいのですが、どうもうまくいきません。まずはデータの取り出し表示の仕方を教えてください。 $sqlstr="select * from webdiary where username=$id order by topicid asc"; $result = mysql_query( $sqlstr ); この後どのようにしたらよいでしょうか?

    • ベストアンサー
    • PHP
  • phpでmysqlを使ってデータベース内の最大値の取得

    PHPでMYSQL内テーブル(hogehoge)の「no」フィールドの最大値を取得をしたいのですが、ほしい結果が得られません。 【PHP】 -------------------------------------------------------------- $my_Max = "select max(no) from hogehoge"; $kekka_max = mysql_query($my_Max); -------------------------------------------------------------- no→今回最大値を取得したい項目(int) 【結果】 これをechoで出力すると、 ----------------------------- Resource id #4 ----------------------------- となってしまいます。 「no」の中の最大値を取得したいのですが、どうしたらよいでしょうか? 【環境】 WindowsXP mysql:5.0.51 php:5.2.5

    • ベストアンサー
    • PHP
  • phpでMysqlにデータを書き込むと文字化

    皆様、教えて下さい。 phpで、日本語文字を入力させて、その内容をMysqlデータベースに保存しようと しているのですが、文字化けしてしまってます。(>_<) 素人なので、ネットで色々と方法を検索してみたのですが、よく判りません。 どなかた、教えて頂けますでしょうか? php側: mb_language("Japanese"); mb_internal_encoding("EUC-JP"); $aaa = 'あああ'; $query = "UPDATE database1 SET data2 = '$aaa' WHERE data1 = '$id'"; mysql_query($query); print $aaa; 上記のような内容ですが、画面上では、きちんと「あああ」と表示されている のですが、Mysqlのデータを見ると、文字化けしております。 お手数ですが、どなたか宜しくお願いします♪

    • 締切済み
    • PHP
  • PHPでmySQLのデータを取り出す

    お世話になります。 php、smarty、mySQLを利用してサイトを構築しています。 下記のPHPプログラムを記述してデータベースからデータを取り出そうとしているのですが、queryの利用方法が良く判りません。 下記の場合、ブラウザ上には、『 Object 』と表示されています。 アドバイスをお願いします。 $sql = 'select footer from common where id=1'; $footer =& $mdb2 -> query($sql); if (PEAR::isError($footer)) {die($footer->getMessage());} $smarty->assign("footer",$footer);

  • mysqlで変数を使う方法

    SQL文にPHPの変数のように変動する値を指定することはできますでしょうか。 データベースから特定のレコードを拾ってきて PHPのPOSTメソッドでその値を送信するシステムを作ろうとしています。 具体的には、データベースに名簿(IDと名前だけの簡単なものです)を 予め作っておき、送信ボタンをクリックしたユーザーのIDと紐付いている 名前を送信したいと考えています。 [MySQL] table:meibo id | name ------------ 1 | itou 2 | yamada 3 | suzuki [PHPソース](一部抜粋) ------------ $sql = mysql_query('SELECT * FROM meibo where id=【ここを変動させたい】', $connect); $sql = mysql_fetch_array($sql); $req->addPostData("user_name", $sql['name']); ------------ $idに操作しているユーザーのIDが代入されているとして 以下のようにmysql_queryの中で実行しているSELECT文に$idを利用することは可能でしょうか。 SELECT * FROM meibo where id=$id もし上記のような方法が無理な場合、 代替案をご提案いただけると非常に助かります。 読みにくい文章で恐縮ですが、 どうかお助けください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP+MySQLで高速化

    mysql_query()が返したresourceの行数は得られませんか? 例をあげると データが id p (フィールド) 42 651 23 357 67 123 28 385 このように4レコード有ったとして $res = mysql_query('select p from tbl where p="123"'); これで、$resから3行目というのを得て、3を使ってidの67を得たいのですが、 $res = mysql_query('select id,p from tbl where p="123"'); のようにして$resのidを見るようにする以外の方法は無理なんでしょうか? もし前者が可能ならそちらの方が速いと思うのですが。

    • ベストアンサー
    • PHP
  • phpでmysqlの結果がresouceにならない

    いつもお世話になります。初心者で何も知識がないまま進めておりますが故に行き詰っております。詳しい方からのアドバイスお願い致します。 今回はphpでmySQLの結果をmysql_fetch_assoc() で展開しようと思ったら以下の文章が出てきました。 mysql_fetch_assoc() expects parameter 1 to be resource, object given in・・・ 調べてみると変数の型(この場合は$resouce)がresourceではないとのことで、戻ってきた型を調べてみるとarrayで戻ってきているようです。 問題となっている箇所は以下の単純なクエリだとは思うのですが、何が原因か分からず。。。 $sql = "SELECT * FROM テーブル名;"; ※テーブル名には変数がありケースバイケースでテーブル名が変わります $resouce = $mysqli -> query($sql) or die(mysqli_error()."エラー"); while ($data = mysql_fetch_assoc($resouce)) { ・・・ お分かりの方がいらっしゃいましたら、ぜひよろしくお願い致します。 •ソフトウェア: MySQL •ソフトウェアバージョン: 5.0.67 •php5

    • ベストアンサー
    • PHP