编辑:我把它拿起来,为空头支票工作;数字不能以零校验开头我是怎么做到的:
//Empty Check:
if (empty($_POST["number"])) {
$numberErr = "Number can't be empty";
} else {
$number = test_input($_POST["number"]);
}
//Zero Check
$zero = substr($number,0,1);
if ($zero === "0") {
$zeroErr = "Number can't start with 0";
并将此代码提交到数据库:
if (empty($_POST["number"])) {
$numberErr = "Number can't be empty";
} elseif ($zero === "0") {
$zeroErr = "Number can't start with 0";
} else {
$number = mysqli_query($con,$sql);
echo "<script type='text/javascript'>'n";
echo "alert('!Added');'n";
echo "</script>";
exit;
唯一的缺点是,我必须声明两次变量,一次在表单标记之前(因为表单中出现错误(,另一次在提交到数据库之前(以满足条件(,奇怪的是,数字被成功添加到数据库中,但如果我在最后回显数字,它会显示为(1(!,为什么?,还有更好的方法吗?
关于"如果存在检查":mysqli_num_rows返回了一个错误,在我开始工作后,代码忽略了我关于空检查和零检查的规则,并在数据库中插入了任何不重复的内容!,sry我没有我所做的代码,我愤怒地删除了:(
我制作了一个只收集电话号码的表格,我试图添加一些功能,但我失败了,请您帮忙。。
数据库提交的php代码如下:
<?php
$con = mysql_connect("localhost","root","PW");
if (!$con){
die('Could not connect: ' . mysql_error());
}
$number = mysql_escape_string($_POST['number']);
mysql_select_db("wa_phones", $con);
$sql="INSERT INTO phone (number)
VALUES
('$number')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header("Location: done.html");
在提交之前,我需要添加php对数据库中重复项的检查,以及对空条目的检查和不允许"0"作为frest编号的检查。。。
我在这里和那里尝试了很多例子,但我无法使用我已经有的代码
感谢的帮助
听起来您需要解决以下问题:
验证电话号码
if( ! strlen($number) ) {
// Phone number is empty.
}
else if( substr($number,0,1) == "0" ) {
// First digit of phone number is 0.
}
检查它是否已经在数据库中
$phone_check_sql = "SELECT number FROM phone WHERE number = '$number'LIMIT 1";
$phone_check_result = mysql_query($phone_check_sql) || die("Some error: ".mysql_error());
if( mysql_num_rows($phone_check_result) != 0 ) {
// Number already exists.
}
您可以在这些条件块中随意处理错误。