将随机ID插入数据库

时间:2013-06-03 06:33:47

标签: php mysql database random

我正在尝试在我的数据库中插入记录,而我正在使用此代码:

<?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(),但我无法弄清楚如何让它工作。任何的想法?或者我错过了什么?

谢谢!

编辑:我从另一个表中获取了patient_id,这是要传递到约会表的帐户表。我能够选择随机患者ID,但如何以随机顺序将其插入另一个表格。

4 个答案:

答案 0 :(得分:0)

你可以添加一个名为'time'的额外列,例如你把UNIX时间放在一起,这样当你按'time'排序时,你会按照你在表中编写它们的顺序得到随机id。 我建议你添加时间对于将它存储在某个地方非常有用!

如果你想要它们不是按随机顺序但是按照精确的顺序,我实际上并不明白你为什么要使用随机id!

答案 1 :(得分:0)

获取随机ID为什么你不能在PHP中使用函数uniqid()

$randomID = uniqid()

请参阅以下链接,

Random/Unique ID

答案 2 :(得分:0)

我会创建一个名为id的数据库字段,其中包含 AUTO_INCREMENT属性

您可以使用以下命令添加列

alter table appointment add (id INT NOT NULL AUTO_INCREMENT);

答案 3 :(得分: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);
}