簡體   English   中英

其他部分不起作用,而條件在PHP中為假

[英]else part is not working whereas condition is false in php

為什么其他部分不起作用? 條件為假。 這是代碼。 請建議:

function SignUp() { 
    if(isset($_POST['email'])){
    $query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error()); 
    if(!$row = mysql_fetch_array($query) or die(mysql_error())) { 
        NewUser();} 
    else{ 
        echo "SORRY...YOU ARE ALREADY REGISTERED USER...";} 
    } 
  } 

我認為您寫了一些錯誤的語法。 請用以下代碼替換代碼。

function SignUp() { 
    if(isset($_POST['email'])){
    $query = mysql_query("SELECT * FROM register WHERE email = '".$_POST['email']."' AND password = '".$_POST['password']."'") or die(mysql_error()); 
    if(!$row = mysql_fetch_array($query) or die(mysql_error())) { 
        NewUser();
    } 
    else{ 
        echo "SORRY...YOU ARE ALREADY REGISTERED USER...";

    } 
    } 
  }

注意 :-在開發模式下,您應該打開錯誤報告

此外,較新版本的PHP不推薦使用mysql_*函數。 因此,請使用mysqliPDO

在php文件的頂部寫以下行,以查看所有錯誤,警告和注意事項。

error_reporting(E_ALL);
ini_set("display_errors", 1);

重寫您的函數,如下所示:

function SignUp() { 
    if(isset($_POST['email'])){
    $query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error());
        // $query returns true or false
        if($query) { 
            NewUser();
        } 
        else{ 
            echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
        } 
    } 
} 

希望它能對您有所幫助:)

更改條件並使用mysql_num_rows()作為:

function SignUp() { 

    if(isset($_POST['email']))
    {
        $query = mysql_query("
            SELECT * FROM register WHERE 
            email = '$_POST[email]' 
            AND password = '$_POST[password]'
            ") or die(mysql_error()); 

        // if record exist
        if(mysql_num_rows($query) > 0){
            echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
        }
        else{
            NewUser(); // register new user
        } 
    } 
} 

根據您的評論:

>使用mysql_num_rows()顯示空白屏幕。 – Anks

在文件的頂部添加error_reporting()並檢查您遇到了什么錯誤。

ini_set("display_errors", 1);
error_reporting(E_ALL);    

邊注:

請使用mysqli_ *或PDO擴展名,因為mysql_*在PHP 7中已棄用並關閉。

Mysqli Query PHP手冊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM