$sqlorg = mysql_query("SELECT * FROM `organization`");
while($orgrows = mysql_fetch_array($sqlorg)) {
//$dborgid = $orgrows['org_id'];
$dborgnme = $orgrows['org_name'];
}
if ($dborgnme == $orgexist) {
echo "<script type='text/javascript'>
alert('Organization Name Already Used by other Organization');
history.back();
</script>";
} else {
$orginsrt = mysql_query("INSERT INTO `organization`(`org_id`,`org_name`,`org_desc`,`category`,`vision`,`mission`,`col_id`,`image`) VALUES ('$orgid','$orgexist','$orgdesc','$orgcat','$orgvis','$orgmis','$getcol','$image')");
echo "<script type='text/javascript'>
alert('Proceed to next Step');</script>";
//require ('orgsignup.php');
header ('Location:orgsignup2.php');
//echo "Not in the Record";
}
答案 0 :(得分:0)
这个问题存在多个问题,因此无法轻易回答 - 我正在写这个“答案”作为Kio Rii的快速指南并获取更多信息:
1)不使用MySQL,使用MySQLi进行程序性DB / PHP交互。
2)
while($orgrows = mysql_fetch_array($sqlorg)) {
//$dborgid = $orgrows['org_id'];
$dborgnme = $orgrows['org_name'];
}
值$dborgnme
将仅保留从数据库中提取的所有行的最终值。请考虑重新格式化While
语句以包装在以下if(){} ... else{}
3)在你的问题中添加一些上下文和信息 - 你在检查什么? $orgexist
等值来自哪里?如果数据存在或者如果数据不存在会发生什么,您希望发生什么事件?
4)如果你只是检查名称,你最好用一个更好的SELECT语句来做,因为当前的选择是抓取所有的MySQL行,所以试试
采取:
$sqlorg = mysql_query("SELECT * FROM `organization`");
并将其转换为
$sqlorg = mysql_query("SELECT * FROM `organization` WHERE org_name LIKE '%".$orgexist."%' ");
如果名称非常相似,它们只返回行。然后,您可以使用此输出(返回的行数)继续执行脚本逻辑。
5)是的,我在第4部分中的解决方案快速而且脏,并且PDO或MySQLi预处理语句比旧MySQL和SQL语句中的变量注入更好,更好,更安全。
您可能会发现这非常有用:
$orginsrt = mysql_query("INSERT INTO `organization`(`org_id`,`org_name`,`org_desc`,`category`,`vision`,`mission`,`col_id`,`image`) VALUES ('$orgid','$orgexist','$orgdesc','$orgcat','$orgvis','$orgmis','$getcol','$image')") or die("insert fail: ".mysql_error());
这将告诉您插入失败的原因。