如果没有结果则显示文本(但只显示一次)

时间:2016-12-12 14:23:30

标签: php loops if-statement

感谢一些帮助,我有一个工作的PHP文件。我现在正在调整它,这样当数据库中找不到数据时它会给我一个特定的文本。

问题是,我认为我得到了逻辑,只是不知道它的代码。让我先展示代码:

<?php
$dbhost = 'localhost';
$dbuser = '**********';
$dbpass = '**********';
$database = '**********';
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    if (isset($_GET['zoeknummer']))  {
        $pdo = new PDO("mysql:host=$dbhost; dbname=$database", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $sql = "SELECT lead_content
    FROM wp_wgbsupicrm_leads";
        $res = $pdo->query($sql);     // where $pdo is your db connection

    while  ($lead = $res->fetchColumn()) {

        $data = json_decode($lead);

    if ($data->zoeknummer == $_GET['zoeknummer']) {
        echo "Uw plaats voor " ; 
        echo $data->wachtlijstkomplex . ' : ' . $data->wachtlijstplaats . '<br>';
        }     
    else {
        echo 'Geen resultaat gevonden met opgegeven nummer. <br> Kijk na of U het nummer correct heeft ingevuld.';
        }
    }
}?>

我理解&#39; while&#39;使它搜索整个数据库,if将显示找到的结果。

我也明白,当该列中没有找到数据时,else会显示文本,我知道它会为每一列都没有找到数据,并且存在问题。

我只想让它显示一次显示的文字。不管它搜索了多少列。此代码现在还显示所有espty搜索的文本,并将在所有否定结果之间显示结果。

我得到的逻辑是我需要得到其他的&#39; &#39;而&#39;但那就是它。任何帮助将不胜感激,我仍然试图理解这种PHP语言并且正在学习,我知道解决方案可能就像破蛋一样简单但是如果你不知道什么是鸡蛋。 。; - )

提前致谢!

3 个答案:

答案 0 :(得分:0)

你可以这样做:

<?php
    $dbhost = 'localhost';
    $dbuser = '**********';
    $dbpass = '**********';
    $database = '**********';
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    if (isset($_GET['zoeknummer']))  {
        $pdo = new PDO("mysql:host=$dbhost; dbname=$database", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $sql = "SELECT lead_content FROM wp_wgbsupicrm_leads";
        $res = $pdo->query($sql);     // where $pdo is your db connection
        $foundResult = false;


    if(mysqli_num_rows($res) > 0)               // <------ here
    {
         while  ($lead = $res->fetchColumn()) {

                $data = json_decode($lead);

            if ($data->zoeknummer == $_GET['zoeknummer']) {
                echo "Uw plaats voor " ; 
                echo $data->wachtlijstkomplex . ' : ' . $data->wachtlijstplaats . '<br>';
                }     
    } else {
           echo 'Geen resultaat gevonden met opgegeven nummer. <br> Kijk na of U het nummer correct heeft ingevuld.';
    }

答案 1 :(得分:0)

只需处理您拥有的代码,我只需设置一个标志来指示您是否在while循环中实际找到了结果。像这样:

<?php
    $dbhost = 'localhost';
    $dbuser = '**********';
    $dbpass = '**********';
    $database = '**********';
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    if (isset($_GET['zoeknummer']))  {
        $pdo = new PDO("mysql:host=$dbhost; dbname=$database", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $sql = "SELECT lead_content FROM wp_wgbsupicrm_leads";
        $res = $pdo->query($sql);     // where $pdo is your db connection
        $foundResult = false;

        while  ($lead = $res->fetchColumn()) {

            $data = json_decode($lead);

            if ($data->zoeknummer == $_GET['zoeknummer']) {
                echo "Uw plaats voor " ; 
                echo $data->wachtlijstkomplex . ' : ' . $data->wachtlijstplaats . '<br>';
                $foundResult = true;
            }
        }
        if (!$foundResult) {
            echo 'Geen resultaat gevonden met opgegeven nummer. <br> Kijk na of U het nummer correct heeft ingevuld.';
        }
    }?>

答案 2 :(得分:0)

感谢大家的帮助,它现在正在运行,我将发布结果代码,以便对有相同问题的人有所帮助:

if (isset($_GET['zoeknummer']))  
                                {   
                                    $pdo = new PDO("mysql:host=$dbhost; dbname=$database", $dbuser, $dbpass);
                                    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
                                    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
                                    $sql = "SELECT lead_content
                                        FROM wp_wgbsupicrm_leads";
                                    $res = $pdo->query($sql);     // where $pdo is your db connection
                                    $flag=false;

                                    while  ($lead = $res->fetchColumn()) 
                                    {               
                                        $data = json_decode($lead);
                                        if ($data->zoeknummer == $_GET['zoeknummer']) 
                                        {
                                            echo "Uw plaats voor " ; 
                                            echo $data->wachtlijstkomplex . ' : ' . $data->wachtlijstplaats . '<br>';
                                            $flag=true;
                                        }

                                    }

                                    if ($flag==false)
                                    {
                                        echo 'Geen resultaat gevonden met opgegeven nummer. <br> Kijk na of U het nummer correct heeft ingevuld.';
                                    }

                                }