如果未找到结果,则使搜索输出错误

时间:2015-04-29 12:02:10

标签: php mysql search

如果用户搜索时没有找到结果,我会尝试显示错误消息;但是我在显示错误消息时遇到问题。

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>PHP Test File</title>
    <link href="phptestcss.css" rel="stylesheet" type="text/css" />
    <link href="lightbox-style/lightbox.css" rel="stylesheet" type="text/css" media="screen"/>
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
    <script src="js/lightbox.js" type="text/javascript"></script>
</head>

<body>

    <?php include 'header.html'; ?>

    <?php

    include 'databaseconnect.php';

    //- Queries the table to get content from rows -

    $QuerySelect =  "SELECT thumbnail,image,title FROM homepage WHERE title LIKE '%".mysql_real_escape_string($_POST['search'])."%' ";

    //----------------- QUERY the TABLE, store THE CONTENT IN A PHP VARIABLE -----------------
    $result = mysql_query($QuerySelect);

    //-------------- STORE THE CONTENT WITH AN ID  = 1 IN A ARRAY --------------      -------------------
    include 'logo.html';
    ?>
    <div class="searchcontainer">
        <form method="post" action="index.php">
            <input type="text" class="input" name="search" size="40" placeholder="Search...">
            <input type="submit" class="button" name="Submit" value="Search" id="Submit" >
        </form>
    </div>
    <?php

$numrows = mysql_num_rows ($result );
    if($numrows = 0 and isset($_POST['search'])){
        echo '<div class="errorcontainer">';
        echo '<div class="erroricon">';
        echo "!";
        echo '</div>';
        echo "Your search returned no results, try searching for a website category e.g Sports or Cars";
        echo '</div>';
    }

    else{

        while ($row =mysql_fetch_object ($result)) {

            //- Main Content -

            echo '<div class="wrapper">';
            ?>

            <?php

            //--------- GET THE POST HTML VARIABLES. PUT INTO PHP VARIABLES -----------------------------


            $search = $_POST['search' ];


            //--------------- IF THE ROW COUNT IS NOT = 0, WHILE THERE ARE ROWS WITH CONTENT, OUTPUT HTML ----------

            ?>

            <?php
            echo '<div class="imagecontainer">';
            echo "<a href=\"".$row->image."\" rel=\"lightbox\"><img src=\"".$row->thumbnail."\" width=\"300\" height=\"300\"border=\"0\"/></a>";
            echo '<div class="titlecontainer">';
            echo "".$row->title."";
            echo'</div>';
            echo'</div>';
            echo'</div>';
        }
    }

    ?>

</body>
</html>

此时,当您搜索存在的内容时会显示内容,但是如果您搜索不存在的内容 - 我设置的错误消息不会显示,而且我不确定原因。

2 个答案:

答案 0 :(得分:0)

您错放了以下代码

HystrixMetricsPoller

应该在下面的代码行之前

 $numrows = mysql_num_rows ($result );

答案 1 :(得分:0)

尝试这个它应该工作,我没有包含HTML标签,但结构结构应该是正确的。

$querySelect = "SELECT thumbnail,image,title FROM homepage WHERE title LIKE '%".mysql_real_escape_string($_POST['search'])."%' ";

$result = mysql_query($querySelect);

$numrows =  mysql_num_rows($result); //this should be on before the if statement 

if($numrows == 0 && isset($_POST['search'])){ //replaced and with &&
    echo '<div class="errorcontainer">';
    echo '<div class="erroricon">';
    echo "!";
    echo '</div>';
    echo "Your search returned no results, try searching for a website category e.g Sports or Cars";
    echo '</div>';
 } else{//The rest of the content.}