ヘルプ!乱数をより速く生成する方法!
要件は次のとおりです。
会員が購入すると、注文番号が生成されます。この注文番号は、1 ~ 100,000 などの一定の範囲内のデータである必要があります。
私が現在使用している方法は、rand(1,100000) を使用して乱数を生成することです。乱数を取得した後、その数値が既に存在する場合は、それをループします。もう一度確認してください。
コードは次のとおりです。
<br /> set_time_limit(0);<br /> $test = M('test');<br /> $_run = true;<br /> $_order_id = rand(0, 100000);<br /> while ($_run) {<br /> $orderInfo = $test->where("val = ".$_order_id)->find();<br /> if(empty($orderInfo)){<br /> $_run = false;<br /> return $_order_id;<br /> }else{<br /> $_order_id = rand(0, 100000);<br /> }<br /> }<br />
これを実行した後、注文番号がまだ非常に小さい場合は、注文番号を取得するのは簡単ですが、注文番号が達した場合は、 99990
現時点では、他の注文番号の生成に時間がかかり、数分から 1 時間かかる場合があります。
このアプローチはもう機能しません。
解決策を見つけるか、他のアイデアを提供するのを手伝ってください、ありがとう!
------解決策----------------------
擬似乱数生成器を書くことができます自分自身
ツールは最初に
$m = 100000;<br />$c = 101;<br />$b = 81;<br />$n = 0;<br />for($i=0; $i<100000; $i++) {<br /> $n = ($n * $c + $b) % $m;<br /> $r[] = $n;<br />}<br />print_r(array_count_values(array_count_values($r)));<br />
Array<br />(<br /> [1] => 100000<br />)<br />を観察します。$r には 0 から 99999 までのランダムに配置された数値が含まれており、各数値は 1 回だけ表示されることがわかります。
$n を最後にしますデータベースに入力された数値です。 then ($n * $c $b) % $m はライブラリに存在してはなりません
ご理解いただけると幸いです

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









