2

行データの最大IDを取得したい。私のテーブルでは、最初の列はid、次にfirstnameなどです。これは、行データのmax(id)を取得するために使用したsqlコマンドです。

<?PHP  $maxid=$this->db->query("SELECT MAX(id) FROM `emplyee_personal_details`");
                print_r( $maxid) ;?>

ただし、配列であるため、大量のデータを出力します。ただし、データの挿入と更新の前に検証するために必要なのは、行データの最大IDのみです。

maxidを取得する方法。私はcodeigniterフレームワークを使用しています。

4

6 に答える 6

10

これを試して:

$maxid = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row()->maxid;

アップデート

これは、テーブルが空の場合でも機能します(上記の例とは異なります)。

$maxid = 0;
$row = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row();
if ($row) {
    $maxid = $row->maxid; 
}
于 2012-12-22T16:06:05.770 に答える
5

「SELECTMAX(id)...」のような生のクエリを使用する場合の問題は、抽象的ではなく、すべてのSQLエンジンで機能するとは限らないことです。私はそれを行うためのアクティブレコードの方法は次のようだと思います:

$this->db->select_max('id');
$query = $this->db->get('emplyee_personal_details');
// Produces: SELECT MAX(id) as age FROM emplyee_personal_details

参照:http ://ellislab.com/codeigniter/user-guide/database/active_record.html

于 2012-12-22T16:18:20.333 に答える
1
SELECT id FROM table ORDER BY id DESC LIMIT 1

これにより、最高のid値が得られます。これを読むと、「配列であるため、大量のデータが出力されます」と、本当に必要なのはその配列の一部であることがわかります。DBクエリは、常に配列やオブジェクトなどの複雑な構造を返します。したがって、スカラー値(整数としての数値)だけが必要な場合は、次のようなものを使用できます。

$maxid = (int)$maxid['id'];

またはこのように(オブジェクトがある場合):

$maxid = (int)$maxid->id;

HTH、〜レイ

于 2012-12-22T16:06:30.447 に答える
1

これを試してみてください、それが役立つことを願っています、

return $this->db->select_max('id')
                        ->get('your_table_name')
                        ->row()->id;
于 2018-02-02T05:08:35.823 に答える
0
public function getMaxCategoryId() {
    $query = $this->db->query("SELECT category_id+1 AS maxid FROM " . DB_PREFIX . "category ORDER BY category_id DESC LIMIT 1");
    return $query->row['maxid'];
}

エラー未定義のインデックスmaxid

于 2017-11-06T09:50:02.940 に答える
0
<?php`$qry = "select max(ID)+1 As ID from records";`
$result = $con->query($qry);
$row = $result->fetch_assoc();`echo "New ID To Enter = ".$row["ID"];?>

接続後、このコードを書くだけで動作します

于 2017-11-12T15:39:41.237 に答える