私は電話のページのスケジュールをプログラミングしています。functions
私が書いているものの1つは、available assistants(saved as assistant_ids)
選択された時間にランダムなものを選択し、リストから彼を削除して、テーブルを更新します。かなり簡単です。
私はそれのためのコードを書きました、そしてそれは完全にうまく働きます、しかしこのコードはプロセスをするために多くの関数を使います。そして、右足で左耳を掻いているような気がします!
将来的にサーバーの処理を大幅に節約できる、このすべてのコードへのショートカットはありますか?
$assistants = self::get_avail_assists($table, $this->time);
//Assistants are saved as ids and each one is 18 Char.
//each one separated with a space
$assistants_no = strlen($assistants);
if($assistants_no > 1){
for($i=0; $i<$assistants_no; $i=$i+18){
$assistants_array[$i/18] = substr($assistants,$i,17);
}
}
//select random assistant key
$rand_assistant_key = array_rand($assistants_array);
//retrieve selected assistant
$rand_assistant = $assistants_array[$rand_assistant_key];
//delete selected assistant from list
unset($assistants_array[$rand_assistant_key]);
//clear assistants string
$assistants = "";
//recreate assistants string to update
foreach($assistants_array as $assistant){
$assistants .= $assistant." ";
}
//update database after popping out the random assistant
$sql = "UPDATE ".$table." SET ".
"avail_assists='".$assistants."' ".
"WHERE id='".$this->time."' ".
"LIMIT 1";
mysqli_query($sql,etc...
お時間をいただきありがとうございます!
アシスタントがデータベースに再入力される順序は重要ではないと仮定します...
$ass_array=explode(" ",$assistants); // space-separated string to array
shuffle($ass_array); // mix it up
$lucky_ass=$ass_array[0]; // save one for whatever usage
unset($ass_array[0]); // remove the one from the group
$leftover_string_of_asses=implode(' ',$ass_array); // convert array to space-separated string
...add sql query
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加