MySQLの指定したテーブル項目の最大値を取得
MySQLのテーブルで選んだ項目の最大値を取得して、1を足した値を求めよ
連番の項目を作りたいので、今の最大値を取得したいのですね
うん、以下のテーブルの「分類」が「いちじく」になっている中の「一連番号」の最大値を取得したいんだ
それに1を足して、、、ここでは「37」が欲しい
【テーブル名:tbl_mysql_120】
ID | 分類 | 一連番号 | 内容1 | 内容2 |
---|---|---|---|---|
1 | いちじく | 35 | 〇〇〇 | ××× |
2 | いちじく | 36 | 〇〇〇 | ××× |
3 | くるり | 58 | 〇〇〇 | ××× |
下のようなコードで取得できますよ。
【サンプルコード】
<?php
$dbsv = 'mysql***.db.sakura.ne.jp';
//データベース名を変数に入れる。
$dbnm = 'itijiku_db001';
//データベース ユーザ名を変数に入れる。
$dbid = 'itijiku';
//データベース接続用パスワードを変数に入れる。
$pass = 'itijikunopass';
$itijiku120 = "いちじく";
try {
$pdo_obj = new PDO('mysql:host='.$dbsv.'; dbname='.$dbnm, $dbid, $pass);
$pdo_obj->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo_obj->exec('SET NAMES utf8');
$pdo_obj->beginTransaction();
$sql010= "SELECT * FROM tbl_mysql_120 WHERE 分類 = :bunrui ORDER BY 一連番号 DESC LIMIT 1 ;";
$stmt = $pdo_obj->prepare($sql010);
$stmt->bindValue(':bunrui',$itijiku120,PDO::PARAM_STR);
$stmt->execute();
$pdo_obj->commit();
$tbl_row001 = $stmt->fetch(PDO::FETCH_ASSOC);
$itiren_bangou = htmlspecialchars($tbl_row001['一連番号']);
$itiren_bangou= $itiren_bangou+1;
echo $itiren_bangou;
} catch (PDOException $Exception) {
$pdo_obj->rollBack();
print "エラー:" . $Exception->getMessage();
}
?>
SQLのWHERE句で「分類」が「いちじく」のレコードを抽出して、「ORDER BY」で降順にします。
それからLIMIT 1として、一番初めのレコードだけ取得しています。
【実行結果】
37
変数の「$itijiku120」に入っている文字列で分類を抽出できるようにしてくれたんだね
ありがと、いろいろ使いまわせるね✨
そうですね。一つ改修しやすいテンプレートを作っておけば、後でそれを少し修正して、活用できますので、作ったコードは整理しておくことをおススメします。
お名前