0

データベースにレコードを挿入しようとしていて、次のコードを使用しています:

<?php 
$con = mysql_connect('localhost','root','')
or die(mysql_error());
mysql_select_db ("my_db");

$patient_array = array();

$query = "SELECT * FROM accounts";
$result = mysql_query($query);

while($row = mysql_fetch_array($result))
{
$patient_array[$row['account_id']] = array("lastname" => $row['lastname'], 
"firstname" => $row['firstname']);
}

foreach($time_table as $tid => $t){
echo array_rand($patient_array, 1);
echo $tid."====".$t["from"]." - " . $t["to"]."<br />";

$sql = "INSERT INTO appointment (appt_id, appt_date, appt_time, appt_doctor, 
patient_id, appt_time_end) VALUES ('', '".$appt_date."', '".$t["from"]."', 
'".$doc."', '".$tid."', '".$t["to"]."')";

mysql_query($sql);
}
?> 

これは適切に挿入されていますが、「patient_id」にはランダムな ID を保存したいと考えています。$tid はランダムな出力を提供しますが、データベースをチェックすると、同じではありません。IDを降順に表示しています。Order by Rand() を使用してみましたが、それを機能させる方法がわかりません。何か案が?または、何か不足していますか?

ありがとう!

編集:別のテーブルから患者 ID を取得しています。これは、予定テーブルに渡されるアカウント テーブルです。ランダムな患者 ID を選択できましたが、それを別のテーブルにランダムな順序で挿入するにはどうすればよいですか。

4

4 に答える 4

0

すべての回答に感謝しますが、私はこれに対する答えを見つけました。これが私のコード変更です:

while($row = mysql_fetch_array($result))
{
//I changed this...
//$patient_array[$row['patient_id']] = array("lastname" => $row['lastname'], "firstname" => $row['firstname']);
//to this:
$patient_array[] = $row['patient_id'];
}

foreach($time_table as $tid => $t){
/*
removed this, since it's just an output to check what's happening inside 
the 'rand'      
echo array_rand($patient_array, 1);
echo $tid."====".$t["from"]." - " . $t["to"]."<br />";
*/

//added these...
$rand = array_rand($patient_array); //randomize patient id
$patient_id = $patient_array[$rand];
print_r($patient_id); //displays randomized ids

//and now was able to INSERT RANDOM patient ids
$sql = "INSERT INTO appointment (appt_id, appt_date, appt_time, appt_doctor, patient_id, appt_time_end) VALUES ('', '".$appt_date."', '".$t["from"]."', '".$doc."', '".$patient_id."', '".$t["to"]."')";

mysql_query($sql);
}
于 2013-06-04T07:28:17.660 に答える
0

uniqid()ランダムIDを取得するために、PHPで関数を使用できないのはなぜですか

$randomID = uniqid()

以下のリンクを参照してください。

ランダム/一意の ID

于 2013-06-03T06:42:41.120 に答える
0

「時間」と呼ばれる追加の列を追加して、たとえばUNIX時間を入力すると、「時間」で注文すると、テーブルに書き込んだ順序でランダムIDが取得されます..追加することをお勧めします時間がどこかに保管されていると本当に便利です。

ランダムな順序ではなく正確な順序でそれらが必要な場合は、ランダムなIDを使用する理由が実際にはわかりません!

于 2013-06-03T06:41:40.677 に答える
0

AUTO_INCREMENT 属性を持つ id というデータベース フィールドを作成します。

次のコマンドで列を追加できます

alter table appointment add (id INT NOT NULL AUTO_INCREMENT);
于 2013-06-03T06:47:11.947 に答える