php mysql中的if else语句问题

时间:2011-07-23 06:57:47

标签: php mysql

你能帮我解决一下我的剧本吗?

我制作了一个phpmysql脚本,其中从表单中获取用户名和电子邮件,然后通过数据库运行它。如果数据库中存在用户名和电子邮件,则会显示'已存在',否则它将添加到数据库中。

这是我的脚本。脚本正在工作(没有显示任何错误)但是在if else语句中存在一些问题(我认为是语法问题),它只显示already member exist即使它不在数据库。我很想知道这个问题。我是phpmysql的新手

if(isset($_POST['submit'])) {
$name=mysql_real_escape_string($_GET['name']);
$tes=mysql_real_escape_string($tes);
print $name;
print $tes;

$sel=mysql_query("SELECT * FROM member WHERE email='$tes' AND usrename='$name'");
if(!isset($sel)) {
 echo('There is already a member');
}
else
{

//insert

 $sql = "INSERT INTO member SET username='$name',email='$tes', date=CURDATE()";
 if (@mysql_query($sql)) {
 echo('<p>You have been added to database.</p>');
 } 
 }
 }

6 个答案:

答案 0 :(得分:2)

而不是

if(!isset($sel))

你可以使用

if(mysql_num_rows($sel) > 0)

检查mysql_num_rows

答案 1 :(得分:2)

在你的mysql_query行上有一个拼写错误:AND usrename应为AND 用户名

答案 2 :(得分:1)

以下部分代码没有按照您的想法执行:

$sel=mysql_query("SELECT * FROM member WHERE email='$tes' AND usrename='$name'");
if(!isset($sel)) {
    echo('There is already a member');
}

mysql_query(),只要查询没有失败(因为SQL中的错误),就会返回一个允许您访问结果集的资源。

即使查询失败,它也会返回false - 意味着变量仍然会被设置。


您可能想要的是尝试从$ set资源中获取一些数据,以查看您的预期(或不是)数据是否存在 - 例如参见mysql_fetch_array()

如果您只想检查用户是否存在,则无需select *查询 - 只需使用select count(*),即可查看有多少用户符合您的条件,而无需加载其数据

答案 3 :(得分:1)

你需要添加一些代码..

<?php    
$sel=mysql_query("SELECT * FROM member WHERE email='".$tes."' AND usrename="'.$name.'");

$data = mysql_fetch_array($sel)

if($data[0]['email']!=''){

    echo 'not in database..';

}

else{

    echo 'in database....';
}
?>

答案 4 :(得分:0)

尝试此解决方案

        <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $mysqli = new mysqli("localhost", "root", "", "articles");

    /* check connection */
    if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }

    /* Select queries return a resultset */
    $con = 1;
    $sql = sprintf("SELECT * FROM users WHERE user_name='%s'", mysql_real_escape_string($user));    

    if ($result = $mysqli->query($sql)) {
        printf("Select returned %d rows.\n", $result->num_rows);
        if($result->num_rows == 0) {
            //TODO :: insert new record
        }
        else {
            //TODO:: USER already exists
        }

        /* free result set */
        $result->close();
    }


    $mysqli->close();
    ?>

答案 5 :(得分:0)

登录核心php

<?php
$usename = $_POST['username'];
$pass = $_POST['password'];

$rowcount = mysqli_num_rows($result);
if($rowcount > 0)
{
  echo "Usename already exits";
}
else
{
  $sql = mysql_query('INSERT INTO `table_name`');
  echo (!empty($sql)) ? "User added." : "Error occured.";
}
?>