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

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

解決済みの質問

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

投稿日時 - 2008-02-20 11:43:11

QNo.3792820

すぐに回答ほしいです

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

count()でなくmax()か。

$sql = "select max(column) as mx from hogehoge";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
echo $row['mx'];

// アクセスできない、とは書いたものの
// $row['max(column)']とすることで取得できた気もする。
// 気持ち悪いから普通やらないと思うけど。

投稿日時 - 2008-02-20 12:07:38

お礼

表記の方法でやったらできました。
mysql_query()の返り値についてよく分かっていなかったです。
ありがとうございました。

投稿日時 - 2008-02-20 13:12:07

ANo.2

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

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

回答(2)

ANo.1

wp_

>【結果】
>これをechoで出力すると、
>-----------------------------
>Resource id #4
>-----------------------------
何をechoしたのか分かりませんが。。
mysql_query()の返り値はリソースなのでechoしてもDBの値が取れるわけではありません。

mysql_fetch_array()やmysql_fetch_assoc()を使いましょう。
http://jp.php.net/manual/en/function.mysql-fetch-array.php
http://jp.php.net/manual/en/function.mysql-fetch-assoc.php

またSQL関数を使うのであれば別名をつけてあげないと外部からアクセスできません。
select count(column) as cnt from hogehoge

コード的には以下になるでしょう。

$sql = "select count(column) as cnt from hogehoge";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
echo $row['cnt'];
//print_r($row);

投稿日時 - 2008-02-20 12:04:11

あなたにオススメの質問