PHP4とmySQLで、以下のことがしたいのですが
・数字3文字の乱数を生成する
・DBに同じ値がないかチェックする
・同じ値が既にDBにあったときは乱数を生成するところからやり直す
・なければDBに書き込んで処理終了
※DBには オートインクリメントのID | 乱数 の2フィールドを使用
※乱数はintではなくvarcharとして書き込む
PHPにgoto命令がないので、スマートなやり方ご存知の方いらっしゃいましたら教えてください。
あと数字3文字の組み合わせなので、DBに値が1000個入っているとそれ以上書き込めないので処理の中止(exit)を行いたいのですが、どこで分岐したものか悩んでますので、併せてご指導いただければ幸いです。
$rand1 = (0,99); $rand2 = (0,99); $rand3 = (0,99);
$abc = $rand1.$rand2.$rand3.
$sql = //省略
$result = $sql;
if($abc == $result){
//重複アリ:この中の処理をどうするとスマートなのか、、、}
elseif{
//重複してないのでDBに書き込みます
}
No.1ベストアンサー
- 回答日時:
>数字3文字の乱数を生成する
二桁の数字を三つ生成しているように見えるんですが、
それだと都合6桁になりませんか?
重複したときのリトライ云々は
do {
・数字3文字の乱数を生成する
・DBに同じ値がないかチェックする
} while (重複なし);
DBへの登録
で何か不都合が?
つーか三桁の組み合わせにしろ、六桁の組み合わせにしろ、
いちいち乱数で生成して確かめてなんてやるよりは
あらかじめ三桁なり六桁の数字を配列に生成しておいて、
それをシャッフルして順に取り出せばいいのではないでしょうか?
これなら生成した配列の終端まで行ったら登録数の上限に
達したということだから一緒にチェックできるでしょう。
doという便利な命令があるのを知りませんでした。
これで解決できそうです。ありがとうございます。
>二桁の数字を三つ生成しているように見えるんですが、
書き間違えていました。$rand1 = (0,9); の間違いです。
配列案は、いちどの処理を全て埋まるまで実行するわけでは
ないので、違う方法を考えてみます。
大変助かりました、ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- 物理学 大学物理に詳しい方に質問です。 ラザフォードたちが実験で知りたかったことは衝突パラメータbと原子核の 1 2023/03/16 03:39
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- PHP php エラー 2 2022/10/23 16:43
- MySQL xlmのSQLに関して ITに触れて、数ヶ月で疑似の予約サイトを作っているものです。 独自のmapp 1 2022/06/15 18:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
$_SESSIONに二次元配列を使える...
-
Smartyの自作プラグインで配列...
-
配列をループでたくさん宣言し...
-
配列にある文字列を1つの変数に...
-
file_existsでファイル名の部分...
-
改行入り変数を改行を残したま...
-
checkboxの値を取得する方法に...
-
配列一致(要素順番は違うが内容...
-
漢字のソートについて
-
String だと「 ByRef引数の型が...
-
総当り表
-
CakePHPのfindの取得件数は?
-
配列をmb_ereg_replaceで一気に...
-
PHPでの簡易ビンゴゲームでの疑...
-
プルダウンメニューでCSVデータ...
-
あいまい検索
-
phpmyadminにおける動作速度が...
-
Smartyでtplファイルから配列を...
-
配列同士の足し算のループ処理
-
fgetc関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
SQL文の実行結果を変数で受けて...
-
【PHP】配列内のある値以上をカ...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
CSVデータのn番目だけの値を取...
-
PHP 配列の数をn対nの割合で分...
おすすめ情報