美好的一天, 我有一个问题,我不知道如何做一个计数id号而不是随机数,请帮助我。谢谢。 我的代码处理随机ID,但我希望它在Counting number ID中。感谢
<?php
$hostname_conn = "localhost";
$database_conn = "user_id";
$username_conn = "root";
$password_conn = "";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_conn,$conn);
// run an endless loop
while(1) {
$randomNumber = mt_rand(10, 100);// generate unique random number
$query = "SELECT * FROM tblrand WHERE the_number='".mysql_real_escape_string ($randomNumber)."'"; // check if it exists in database
$res =mysql_query($query,$conn);
$rowCount = mysql_num_rows($res);
$id=$randomNumber;
// if not found in the db (it is unique), then insert the unique number into data_base and break out of the loop
if($rowCount < 1) {
$con = mysql_connect ("localhost","root");
mysql_select_db("user_id", $con);
$sql = "insert into tblrand(the_number) values('".$randomNumber."')";
mysql_query ($sql,$con);
mysql_close ($con);
break;
}
}
echo "IT-FORM" .$id;
?>
&#13;
答案 0 :(得分:0)
情况1:由服务器端生成的ID
在服务器端,配置mysql数据库以生成顺序唯一ID。在您的字段中添加一个字段 自动增量表 https://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html,如 @Londeren
客户端只需管理插入查询即可将数据保存在数据库中(而不是ID,仅是与ID相关的数据)。
通常,此解决方案是更可取的:即使您有许多客户端,数据库也将管理所有 系统,高效地查询。
案例2:由客户端生成的ID(不建议使用,如果可能,请使用案例1。 答案,因为您的问题从这里开始)
您从数据库中获取了最后一个ID,生成了一个新ID(最后一个ID + 1),然后在 数据库。
客户端管理选择ID查询,生成新ID,然后插入查询。你拿 冒着其他客户端同时生成相同ID并将其插入数据库的风险。
假设在服务器端一切正常,在客户端的代码可能是这样:
<?php
$hostname_conn = "localhost";
$database_conn = "user_id";
$username_conn = "root";
$password_conn = "";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_conn,$conn);
// run an endless loop
$count=1;
while(1) {
$query = "SELECT * FROM tblrand WHERE the_number='".mysql_real_escape_string
($count)."'"; // check if it exists in database
$res =mysql_query($query,$conn);
$rowCount = mysql_num_rows($res);
// if not found in the db (it is unique), then insert the unique number into data_base and break
out of the loop
if($rowCount < 1) {
$con = mysql_connect ("localhost","root");
mysql_select_db("user_id", $con);
$sql = "insert into tblrand(the_number) values('".$count."')";
mysql_query ($sql,$con);
mysql_close ($con);
$count++;
break;
}
}
echo "IT-FORM" .$count;
?>