我在if else条件下遇到问题。对不起我是初学者所以请帮助我。我的代码如下。
$sql1=mysql_query("select * from dbms_master_data where id='".$_GET['eid']."'");
$rst1=mysql_fetch_array($sql1);
$new_user='Contact; '.$rst1['user_type'];
$sqls=mysql_query("update dbms_master_data set user_type='".$new_user."', cid='".$_GET['vid']."' where id='".$_GET['eid']."' and cid IS NULL");
if($sqls)
{
?>
<script>
alert("New contact added!");
window.location='access1.php?vid=1';
</script>
<?php
}
else
{
?>
<script>
alert("This contact is already assigned to another user!");
window.location='access1.php?vid=2';
</script>
<?php
}
我正在收到新的联系人&#39;甚至我的情况都失败了。你能告诉我为什么吗?
答案 0 :(得分:0)
你的病情错了
if($ sqls)它将始终返回true,因为mysql_query()响应返回资源ID。
答案 1 :(得分:0)
使用mysql_num_rows()
。用于检查受影响行的数量
$sqls=mysql_query("update dbms_master_data set user_type='".$new_user."', cid='".$_GET['vid']."' where id='".$_GET['eid']."' and cid IS NULL");
$row=mysql_num_rows($sqls);
if($row>0)
{
?>
<script>
alert("New contact added!");
window.location='access1.php?vid=1';
</script>
<?php
}
else
{
?>
<script>
alert("This contact is already assigned to another user!");
window.location='access1.php?vid=2';
</script>
<?php
}
答案 2 :(得分:0)
如上所述使用if(mysql_num_rows($ sqls)&gt; 0){但考虑使用PDO,如果您正在学习,PHP不再推荐使用mysql_query,因此值得您掌握PDO。
另外,请确保您逃脱进入数据库的任何内容,如果您不这样做,人们可以轻松注入内容。示例(在您的查询的上下文中):
$sql1=mysql_query("select * from dbms_master_data where id=".(int)$_GET['eid']);
$rst1=mysql_fetch_array($sql1);
$new_user='Contact; '.$rst1['user_type'];
$sqls=mysql_query("update dbms_master_data set user_type='".mysql_real_escape_string($new_user)."', cid=".(int)$_GET['vid']." where id=".(int)$_GET['eid']." and cid IS NULL");
答案 3 :(得分:0)
有必要检查它是否已更新。 所以请使用
mysql_affected_rows()