質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2914閲覧

シード値を使って固定化した乱数を用いた発注番号の検索フォームの作成方法を教えてください。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/03/05 06:01

###前提・実現したいこと

PHP(PHPMyAdmin)で発注番号とその検索フォームを作成しています。
発注番号はDBに保存せず、シード値をつかった固定乱数で作られています。

そこで、固定化した乱数で作られた発注番号の検索フォームの作成方法を教えていただけないでしょうか?
または、逆算してシード値を取得する処理の書き方を教えていただけないでしょうか?
※シード値はプライマリーキーで設定しています。

宜しくお願い致します。

###該当のソースコード

$seed = $row['ABC']; srand($seed); $randumNumber = rand(0, 9999999999); $re = substr_replace($randumNumber, '-',4, 0);

###試したこと
上記のようにソースコードを書いて、固定化した乱数を発注番号として用いることはできていますが、そこから逆算して発注番号の検索フォームを作成することができておりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プライマリキーと発注番号の対応を保存しておかない限り、発注番号からプライマリキーを求めることは不可能です。
また、randのような乱数を生成する関数は一般的にOS、ライブラリ、言語のバージョン等が変わると同じseedでも結果が変わってしまう可能性があるため、このような用途で用いるべきではありません。

投稿2017/03/05 06:46

編集2017/03/05 06:47
SVC34

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/05 08:26

ご回答ありがとうございます。 seedでも完全に固定されるわけではないのですね。 shuffleを使って乱数を生成したとしたら可能でしょうか?
SVC34

2017/03/05 09:40 編集

shuffleであれ何であれ、(疑似)乱数に関するものであれば基本的に同じ問題が生じます。なお、phpのshuffleは内部でrandを使用しているようです。 乱数生成機ではなくハッシュ関数であれば、一般的には異なる環境でも同じ結果を再現させることが可能です。しかし、逆算が出来ない点は変わりません。
退会済みユーザー

退会済みユーザー

2017/03/05 10:09

ハッシュ関数でも逆算ができないんですね。 丁寧に回答してくださり、大変ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問