dougaojue8185 2013-12-22 08:56
浏览 23
已采纳

在PHP中比较数据库中的数据

What I'm trying to do is saving some data in the database and when user will press "SAVE" button script will compare the data entered by the user with data already present in the database. If the data matches it will show a warning that is "The entered data is already in the database please use search bar to search it." In my case I only want it to check phone number and cnic (cnic = national identity card number). Here is what I am doing.

 <?php include_once("config.php"); // mysql_connect and database selection are in this file.
    $name = $_POST['name']; // data coming from save_info.php
    $gender = $_POST['option']; // data coming from save_info.php
    $cnic = $_POST['cnic']; // data coming from save_info.php
    $number = $_POST['number']; // data coming from save_info.php
    $address = $_POST['address']; // data coming from save_info.php
    $info = $_POST['info']; // data coming from save_info.php
    $check = "SELECT * FROM info WHERE num = $number AND cnic = $cnic"; // checking data
    $cresult = mysql_query($check);
    if (mysql_num_rows($cresult)==1) {
         echo "The entered phone number/cnic is already in the database, Please use search bar to search it.";
        header('refresh:10;url=save_info.php');
        }
        else
        {

    $sql = "INSERT INTO info(name, gender, cnic, num, address, info)VALUES('$name', '$gender', '$cnic', '$number', '$address', '$info')";
    $result = mysql_query($sql);
    mysql_close();
    header('Location:saved_info.php');
    }
?>
  • 写回答

2条回答 默认 最新

  • douren2395 2013-12-22 09:02
    关注

    You probably missed the quotes in your query:

    $check = "SELECT * FROM info WHERE num = \"$number\" AND cnic = \"$cnic\"";
    

    Since the fields are probably textual (varchar or something like that) you need to tell where the limits of the values you're comparing to are.

    Also if you need to skip the saving if any of the values matches you should use OR:

    $check = "SELECT * FROM info WHERE num = \"$number\" OR cnic = \"$cnic\"";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路