- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GOTO命令のようなことをPHPで)
PHPで乱数を生成し重複チェックする方法
このQ&Aのポイント
- PHP4とmySQLを使用して、数字3文字の乱数を生成し、DBに重複チェックを行い、重複していなければDBに書き込む方法について教えてください。
- また、DBに値が1000個入っている場合には処理を中止する方法も教えてください。
- GOTO命令がPHPにはないため、スマートなやり方を知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>数字3文字の乱数を生成する 二桁の数字を三つ生成しているように見えるんですが、 それだと都合6桁になりませんか? 重複したときのリトライ云々は do { ・数字3文字の乱数を生成する ・DBに同じ値がないかチェックする } while (重複なし); DBへの登録 で何か不都合が? つーか三桁の組み合わせにしろ、六桁の組み合わせにしろ、 いちいち乱数で生成して確かめてなんてやるよりは あらかじめ三桁なり六桁の数字を配列に生成しておいて、 それをシャッフルして順に取り出せばいいのではないでしょうか? これなら生成した配列の終端まで行ったら登録数の上限に 達したということだから一緒にチェックできるでしょう。
お礼
doという便利な命令があるのを知りませんでした。 これで解決できそうです。ありがとうございます。 >二桁の数字を三つ生成しているように見えるんですが、 書き間違えていました。$rand1 = (0,9); の間違いです。 配列案は、いちどの処理を全て埋まるまで実行するわけでは ないので、違う方法を考えてみます。 大変助かりました、ありがとうございました!!