• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GOTO命令のようなことをPHPで)

PHPで乱数を生成し重複チェックする方法

このQ&Aのポイント
  • PHP4とmySQLを使用して、数字3文字の乱数を生成し、DBに重複チェックを行い、重複していなければDBに書き込む方法について教えてください。
  • また、DBに値が1000個入っている場合には処理を中止する方法も教えてください。
  • GOTO命令がPHPにはないため、スマートなやり方を知りたいです。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

>数字3文字の乱数を生成する 二桁の数字を三つ生成しているように見えるんですが、 それだと都合6桁になりませんか? 重複したときのリトライ云々は do { ・数字3文字の乱数を生成する ・DBに同じ値がないかチェックする } while (重複なし); DBへの登録 で何か不都合が? つーか三桁の組み合わせにしろ、六桁の組み合わせにしろ、 いちいち乱数で生成して確かめてなんてやるよりは あらかじめ三桁なり六桁の数字を配列に生成しておいて、 それをシャッフルして順に取り出せばいいのではないでしょうか? これなら生成した配列の終端まで行ったら登録数の上限に 達したということだから一緒にチェックできるでしょう。

optional
質問者

お礼

doという便利な命令があるのを知りませんでした。 これで解決できそうです。ありがとうございます。 >二桁の数字を三つ生成しているように見えるんですが、 書き間違えていました。$rand1 = (0,9); の間違いです。 配列案は、いちどの処理を全て埋まるまで実行するわけでは ないので、違う方法を考えてみます。 大変助かりました、ありがとうございました!!