首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php mysql从数据库中识别未保存的值

问如何使用php mysql从数据库中识别未保存的值
EN

Stack Overflow用户
提问于 2014-06-10 07:04:43
回答 2查看 83关注 0票数 0

我必须使用php和mysql从mysql表中识别未保存的值,例如,我使用名为numtab的表,并且我已经将一些数字1、3、4、7、23、12、45存储在numb列中。

现在我让随机生成一个新的数字(例如23),我必须用已经存储的数字来检查这个数字,

如果表中存在23,则意味着我必须生成另一个新数字,并且必须再次使用存储的值进行检查,则此过程必须继续到找到未保存的数字为止。

如果表中不存在生成的值,则可以停止处理,并将此数字存储在表中。

下面是我目前使用的格式

代码语言:javascript
复制
$numb=23;
$qryb="select * from numtab where numb='$numb'";
$results=mysql_query($qryb)or die("ERROR!!");
if(mysql_num_rows($results) == 1)
{
    $numb=rand(1,100);
    mysql_query("insert query");   
}

问题是上面的代码只是验证一次,而不是第二次验证。我认为如果使用进行或循环方法可以解决这个问题,但是我不知道如何循环,所以请帮助我解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2014-06-10 07:07:13

您可以在这样的子句中使用:

代码语言:javascript
复制
$qryb="select * from numtab where numb in('$numb')";
$results=mysql_query($qryb)or die("ERROR!!");
$count = mysql_num_rows($results);


if ($count > 0) {
      echo "number exist in db";
} else {
     echo "number does not exist in db";
}
票数 0
EN

Stack Overflow用户

发布于 2014-06-10 07:11:07

您可以使用while()循环来检查数据库中是否存在这些数字。您还可以从数据库中检索所有数字,将它们存储在数组中,并检查生成的数字是否存在于该数组中。

第一个选择是这样的:

代码语言:javascript
复制
do {
  $numb=rand(1,100);
  $qryb="select * from numtab where numb='$numb'";
  $results = mysql_query($qryb) or die("ERROR!!");
} while(mysql_num_rows($results) >= 1)
mysql_query("insert query");   

第二个选择是这样的:

代码语言:javascript
复制
$query = mysql_query("SELECT DISTINCT(numb) as numb FROM numtab");

// set array
$array = array();

// look through query
while($row = mysql_fetch_assoc($query)){
  // add each row returned into an array
  $array[] = $row['numb'];
}

do 
{
  $numb = rand(1,100);
}
while(!in_array ( $numb , $array) ;
mysql_query("insert query"); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24134841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档