好像是麻烦了点,只需要判断查询结果是否为0
例如
$SQL="SELECT username FROM user WHERE username='$username'";
   $result=mysql_query($SQL) or die(mysql_error());
$numrows=mysql_num_rows($result);
if($numrows==0){
     //没有存在的用户名
}else{
    //存在的用户名}

解决方案 »

  1.   

    function Checkusername($username)
    {             
       $SQL="SELECT username FROM user WHERE username='$username'";
       $result=mysql_query($SQL) or die(mysql_error());
       $num=mysql_num_rows($result);
       if($num>0) return true;
       else return false;
    }$username="aaa";
    if (Checkusername($username)) $error="此用户名已存在";
      

  2.   

    return mysql_num_rows($result)>0;
      

  3.   

    你试试 saimen2002(赛门) ,应该是可以的,和你的比较相近,都是用函数实现,在PHP里,如果中断执行,用 exit;祝你好运!
      

  4.   

    我来改一下 saimen2002(赛门,可能是你想要的:
    function Checkusername($username)
    {             
       $SQL="SELECT username FROM user WHERE username='$username'";
       $result=mysql_query($SQL) or die(mysql_error());
       $num=mysql_num_rows($result);
       if($num>0) return true;
       else return false;
    }$username="aaa";
    if (Checkusername($username)) 
    {
    $error="此用户名已存在";
    echo "<a href=>返回</a>";
    exit;// 中断执行,避免提交
    }
    //看看行不行。
      

  5.   

    当出错时会显示,可记录已经写入数据库了,怎么办?
    如果出错就中断,下面的就无法进行,代码如下:
    <?
     include "common.inc.php";
    {function Checkusername($username)
    {             
       $SQL="SELECT username FROM user WHERE username='$username'";
       $result=mysql_query($SQL) or die(mysql_error());
       $num=mysql_num_rows($result);
       if($num>0) return true;
       else return false;
    }  //$username="aaa";
      if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";
      }
      $birthday=$y."-".$m."-".$d;              
      $SQL="INSERT INTO user VALUES('$username','$pwd','$question','$answer', '$realname', '$sex', '$birthday', '$tel', '$tel2','$xin', '$address','$post')";
      $result= mysql_query($SQL) or die(mysql_error()); 
      $sucommand = "su --login root --command"; 
      $useradd = "/usr/sbin/useradd ";
      $rootPasswd = "lkfwlmkl8899";
      $user_add = sPrintf("%s \"%s %s %s %s %s\"",$sucommand,$useradd,$username,"-g mail","-p ",$pwd);
      $fP =ss;
      $fp=@Popen($user_add,"w");
      @fputs($fP,$rootPasswd); 
      @Pclose($fP);   if (!isset($error)) {
      
        header("Location: ok.php? ");
      } else 
      {
        header("Location: error.php?error=$error\n");
      }
      exit; ?>
      

  6.   

    if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";这里是检查是否有错。你可以这样(举例):
      $error="none";
      if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";
      if ($error!="none") 显示错误信息并用exit退出程序
      

  7.   

    if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";这里是检查是否有错。你可以这样(举例):
      $error="none";
      if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";
      if ($error!="none") 显示错误信息并用exit退出程序
      

  8.   

    if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";这里是检查是否有错。你可以这样(举例):
      $error="none";
      if (!$username) $error="用 户 名 不 能 为 空";
      if (Checkusername($username)) $error="此 用 户 名 已 存";
      if ((!isset($error)) and (!$pwd)) $error="请 输 入 您 的 密 码";
      if ((!isset($error)) and ($pwd!=$pwd2)) $error="两 次 输 入 的 密 码 不 同";
      if ($error!="none") 显示错误信息并用exit退出程序