首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户在非数据库上添加他,如果是,不要做任何事

问如果用户在非数据库上添加他,如果是,不要做任何事
EN

Stack Overflow用户
提问于 2014-11-23 14:53:00
回答 2查看 77关注 0票数 0

我看到了很多答案,但没有一个对我有用,我想我想要的是一些不同的东西。我正在制作一个在游戏中组织战斗的网站(部落冲突),这样用户就可以选择用户($base)将要攻击的基础($name)。在页面中,用户可以在选择列表中选择基数,并键入他的名称。因此,如果以前没有人选择过这个数字(这个数字不在数据库中),那么他的名字将被存储在那里。但是,如果这个号码已经在列表上了,用户就不能更新或更改它。用更少的话说:如果$number已经在数据库上了:什么都不做,如果不是:插入他,下面是网页的代码:

代码语言:javascript
复制
 $base = $_POST['base'];
   $nome = $_POST['nome'];


$sql = 
"
//Here is the code that I need to check if the number do not exists and add it
";

mysql_select_db('a2322671_spabr');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Numero da base</td>
<td>
<select name="base" id="base">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>
</td>
</tr>
<tr>
<td width="100">Quem vai atacar</td>
<td><input name="nome" type="text" id="nome"></td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="add" type="submit" id="add" value="Reservar">
</td>
</tr>
</table>
</form>
<?php
}
?>

我从现在开始感谢,为我糟糕的英语感到抱歉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-23 14:59:21

这应该是可行的:

代码语言:javascript
复制
mysql_select_db('a2322671_spabr');

$base = $_POST['base'];
$nome = $_POST['nome'];
$retval = mysql_query("SELECT base FROM bases_table WHERE base = '$base'", $conn);

if (mysql_num_rows($retval) == 0) {
    // doesn't exist already, do stuff
    $retval2 = mysql_query("INSERT INTO bases_table (base, nome) VALUES ('$base' , '$nome')", $conn);
    if(!$retval2) {
        die('Could not enter data: '.mysql_error());
    }

    echo "Data inserted successfully\n";
    mysql_close($conn);

} else {
    // does exist, do something else
    echo "Data already exists.";
    mysql_close($conn);
}

顺便提一下,我建议不要使用内置的mysql特性,因为它们既不安全,又不受欢迎。看看Mysqli或PDO

票数 1
EN

Stack Overflow用户

发布于 2014-11-23 15:06:47

在这种情况下,“插入忽略”语句应该对您很有帮助。

代码语言:javascript
复制
$sql ="INSERT IGNORE INTO baseTable ('baseId','userName') VALUES('$baseId', '$userName')";

mysql_select_db('a2322671_spabr');
$retval = mysql_query( $sql, $conn );
if($retval )
{
   echo "Entered data successfully\n";
}
mysql_close($conn);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27090220

复制
相关文章

相似问题

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