新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
说下思路:
成都创新互联主要从事成都网站制作、做网站、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务房县,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
1. 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?
先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算差集,去除这部分数字(array_diff),再shuffle,得到新的随机数。
我觉得,你完全可以建立一个序号表,比如,1-1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复。
2. 有没有什么办法生成的时候先生成一位数的,一位数生成满了以后再生出两位数的,两位数满了然后再三位数的,以此类推?
先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止。
3. 代码的执行效率希望能越高越好!
如果想要代码执行效率,最好尽量减少与数据库的交互。
当输入的号码不存在时,查询仍然是正常完成的,并不会出错,只是返回的是个空记录集,但空记录集不等于空对象,所以你简单地用 if ($num){ 来判断是否找到数据是不对的,应该判断返回的记录数量是否为零:
if($nummysqli_num_rows($num)0){
此外,当输入的号码不存在时,mysqli_error($link))是没有错误信息提示的,因为我前面已经说了:这不是错误!
1046: No database selected
很清楚的,行数都有,数据路链接不对。没有连上数据库
sql语句那句,去掉id字段
echo
$sql="insert
into
bbs(user,content)
values('".$_POST['user']."','".$_POST['content']."')";
然后再检查一下,数据表中的id字段是不是自动增加。