2013-06-03 55 views
0

我想插入記錄在我的數據庫,我使用此代碼:插入隨機ID到數據庫

<?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」我想存儲隨機編號。 $ tid給我隨機輸出,但是當我檢查數據庫時,它不一樣;它以降序顯示ID。我嘗試使用Rand()的Order,但我無法弄清楚如何使它工作。任何想法?或者我錯過了什麼?

謝謝!

編輯:我從另一個表中獲取patient_id,這是要傳遞到預約表中的帳戶表。我能夠選擇隨機患者ID,但我怎樣才能將它插入另一張桌子,也是隨機的。

+0

其中是來自'PatientID'的值?隨機生成的「ID」有沒有範圍? –

+0

看看這個:http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/ –

+1

rand()的順序是不好的解決方案。檢查此http://www.electrictoolbox.com/msyql-alternative-order-by-rand/其中'$ time_table'被分配我無法找到它? – Robert

回答

0

您可以添加一個名爲'time'的額外列,例如,在您放置UNIX時間的情況下,例如,當您按'時間'排序時,您將按照您在表格中編寫的順序獲取隨機ID .. 建議你添加時間對於將它存儲在某個地方是非常有用的!

如果你想要它們不是隨機的順序,但是按照精確的順序我不明白你爲什麼要使用隨機ID!

0

爲了得到隨機ID,你爲什麼不能使用functoin uniqid()在PHP

$randomID = uniqid() 

請參考下面的鏈接,

Random/Unique ID

0

我會做一個數據庫字段名爲id,這將有 AUTO_INCREMENT屬性

您可以添加以下列命令

alter table appointment add (id INT NOT NULL AUTO_INCREMENT); 
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); 
}