搜索日期不起作用

时间:2015-10-01 09:35:29

标签: php search-engine

我是php的新手,正在尝试在名称和日期上设置搜索功能,但我有一个问题。

当我输入日期时,值始终为false。即使我搜索的日期确实存在于数据库中。我搜索谷歌和Stackoverflow,但我无法找到我的问题的解决方案。

我用PHP编码,我使用phpmyadmin作为我的数据库。 您可以在下面找到我的代码:

<?php
            if(isset($_POST['submit'])){
                if(isset($_GET['go'])){
                    if(preg_match("/^[  a-zA-Z]+/", $_POST['search'])){
                        $zoek=$_POST['search'];
                        //connect  to the database
                        $db=mysql_connect  ("localhost", "****",  "***") or die ('I cannot connect to the database  because: ' . mysql_error());
                        //-select  the database to use
                        $mydb=mysql_select_db("****");
                        //-query  the database table
                        $sql="SELECT v.vacatureID, v.werkgeverID, v.functie, v.omschrijvingKort, v.datum, w.werkgeverID, w.naamBedrijf, w.plaats, w.image FROM vacature AS v JOIN werkgever AS w ON v.werkgeverID = w.werkgeverID WHERE w.naamBedrijf LIKE  '%" . $zoek .  "%' OR to_char(v.datum,'dd-mm-yyyy') LIKE '%" . $zoek ."%' ORDER BY datum DESC";
                        //-run  the query against the mysql query function
                        $result=mysql_query($sql);
                        //-count  results
                        $numrows=mysql_num_rows($result);
                        echo  "<p>" .$numrows . " results found for '" . $zoek . "'</p>";

                        //-create  while loop and loop through result set
                        while($row=mysql_fetch_array($result)){
                                $Functie=$row['functie'];
                                $OmschrijvingKort=$row['omschrijvingKort'];
                                $Datum=$row['datum'];
                                $Bedrijf=$row['naamBedrijf'];
                                $Plaats=$row['plaats'];
                                $Image=$row['image'];
                                $ID=$row['vacatureID'];

                            $Data = date("d-m-Y", strtotime($Datum)); // change $Datum from Y-m-d to d-m-Y
                            //-truncate
                            if (strlen($Functie) > 20) {
                                // truncate string
                                $stringCut = substr($Functie, 0, 20);
                                // make sure it ends in a word
                                $Functie = substr($stringCut, 0, strrpos($stringCut, ' ')).'...'; 
                            }
                            if (strlen($Bedrijf) > 25) {
                                // truncate string
                                $stringCut2 = substr($Bedrijf, 0, 14);
                                // make sure it ends in a word
                                $Bedrijf = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                            }
                            if (strlen($Data) > 12) {
                                // truncate string
                                $stringCut2 = substr($Data, 0, 12);
                                // make sure it ends in a word
                                $Data = substr($stringCut2, 0, strrpos($stringCut2, ' ')).''; 
                            }
                            if (strlen($OmschrijvingKort) > 63) {
                                // truncate string
                                $stringCut2 = substr($OmschrijvingKort, 0, 63);
                                // make sure it ends in a word
                                $OmschrijvingKort = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                            }
                            //-display the result of the array
                            echo 
                            "
                                <div class='vacatureinfo2'>
                                    <img class='userimg2' src='../../uploads/userimage/". $Image ."' id='imge'/>
                                    <p class='func-br-pl pull-left'>". $Functie ." - ". $Bedrijf ." - ". $Plaats ."</p><p class='dtm pull-right'>". $Data ."</p>
                                    <div class='omschrijvingkort2'>
                                        ". $OmschrijvingKort ."
                                    </div>
                                    <a href='#' class='pull-right'>Meer informatie</a>
                                </div>
                                <hr>
                            ";
                        }
                    }
                    else{
                        echo  "<p>Please enter a search query</p>";
                    }
                }
            }//end of search form script
            else{
                include('php/vacatureoverzichtphp.php'); //file with code to show all the data from the database on the page
            }

            if(isset($_GET['by'])){
                $letter=$_GET['by'];
                //connect  to the database
                $db=mysql_connect  ("localhost", "****",  "***") or die ('I cannot connect to the database  because: ' . mysql_error());
                //-select  the database to use
                $mydb=mysql_select_db("****");
                //-query  the database table
                $sql="SELECT v.vacatureID, v.werkgeverID, v.functie, v.omschrijvingKort, v.datum, w.werkgeverID, w.naamBedrijf, w.plaats, w.image FROM vacature AS v JOIN werkgever AS w ON v.werkgeverID = w.werkgeverID WHERE SUBSTRING(w.naamBedrijf,1,1) LIKE  '%" . $letter .  "%' ORDER BY datum DESC";
                //-run  the query against the mysql query function
                $result=mysql_query($sql);
                //-count  results
                $numrows=mysql_num_rows($result);
                echo  "<p>" .$numrows . " results found for " . $letter . "</p>";
                //-create  while loop and loop through result set
                while($row=mysql_fetch_array($result)){
                    $Functie=$row['functie'];
                    $OmschrijvingKort=$row['omschrijvingKort'];
                    $Datum=$row['datum'];
                    $Bedrijf=$row['naamBedrijf'];
                    $Plaats=$row['plaats'];
                    $Image=$row['image'];
                    $ID=$row['vacatureID'];

                    $Data = date("d-m-Y", strtotime($Datum)); // change $Datum from Y-m-d to d-m-Y
                    //-truncate
                    if (strlen($Functie) > 20) {
                        // truncate string
                        $stringCut = substr($Functie, 0, 20);
                        // make sure it ends in a word
                        $Functie = substr($stringCut, 0, strrpos($stringCut, ' ')).'...'; 
                    }
                    if (strlen($Bedrijf) > 25) {
                        // truncate string
                        $stringCut2 = substr($Bedrijf, 0, 14);
                        // make sure it ends in a word
                        $Bedrijf = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                    }
                    if (strlen($Data) > 12) {
                        // truncate string
                        $stringCut2 = substr($Data, 0, 12);
                        // make sure it ends in a word
                        $Data = substr($stringCut2, 0, strrpos($stringCut2, ' ')).''; 
                    }
                    if (strlen($OmschrijvingKort) > 63) {
                        // truncate string
                        $stringCut2 = substr($OmschrijvingKort, 0, 63);
                        // make sure it ends in a word
                        $OmschrijvingKort = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                    }

                    //-display  the result of the array
                    echo 
                    "
                        <div class='vacatureinfo2'>
                            <img class='userimg2' src='../../uploads/userimage/". $Image ."' id='imge'/>
                            <p class='func-br-pl pull-left'>". $Functie ." - ". $Bedrijf ." - ". $Plaats ."</p><p class='dtm pull-right'>". $Data ."</p>
                            <div class='omschrijvingkort2'>
                                ". $OmschrijvingKort ."
                            </div>
                            <a href='#' class='pull-right'>Meer informatie</a>
                        </div>
                        <hr>
                    ";
                }
            }//end of our letter search script
            else{
                include('php/vacatureoverzichtphp.php'); //file with code to show all the data from the database on the page
            }
        ?>

有人可以帮助我吗?!

修改

这里我有PDO的代码。但是当我现在运行时,我收到了警告:

  • 警告:mysql_num_rows()期望参数1为resource,boolean given
  • 警告:mysql_fetch_array()期望参数1为资源,布尔值为

从mysql_num_rows()我得到:results found for ''wo''所以由于某种原因他找不到任何东西!对于var_dump($zoek);我得到:string(2) "wo"

仍然为$ _GET ['by']部分,每个人都可以正常运行,而且代码相同!有人可以告诉我我做错了吗?

我的新代码:

<?php
            ini_set('display_errors',1);
            ini_set('display_startup_errors',1);
            error_reporting(-1);

            //connect  to the database
            $db_host = "localhost";
            $db_username = "***";
            $db_password = "***";
            $db_name = "***";

            $db = new PDO('mysql:host=' .$db_host . ';dbname='. $db_name . '',$db_username,$db_password) or die ('I cannot connect to the database  because: ' . mysql_error());; 


            if(isset($_POST['submit'])){
                if(isset($_GET['go'])){
                    if(preg_match("/^[  a-zA-Z]+/", $_POST['search'])){
                        $zoek=$_POST['search'];
                        var_dump($zoek); //this will display on the screen the content of the variable 
                        $zoek=$db->quote($zoek);

                        //-query  the database table
                        $sql="SELECT v.vacatureID, v.werkgeverID, v.functie, v.omschrijvingKort, v.datum, w.werkgeverID, w.naamBedrijf, w.plaats, w.image FROM vacature AS v JOIN werkgever AS w ON v.werkgeverID = w.werkgeverID WHERE w.naamBedrijf LIKE  '%" . $zoek .  "%' OR v.datum LIKE '%" . $zoek ."%' ORDER BY datum DESC";
                        //-run  the query against the mysql query function
                        $result=$db->query($sql);
                        //-count  results
                        $numrows=mysql_num_rows($result);
                        echo  "<p>" .$numrows . " results found for '" . $zoek . "'</p>"; 

                        //-create  while loop and loop through result set
                        while($row=mysql_fetch_array($result)){
                                $Functie=$row['functie'];
                                $OmschrijvingKort=$row['omschrijvingKort'];
                                $Datum=$row['datum'];
                                $Bedrijf=$row['naamBedrijf'];
                                $Plaats=$row['plaats'];
                                $Image=$row['image'];
                                $ID=$row['vacatureID'];

                            $Data = date("d-m-Y", strtotime($Datum)); // change $Datum from Y-m-d to d-m-Y
                            //-truncate
                            if (strlen($Functie) > 20) {
                                // truncate string
                                $stringCut = substr($Functie, 0, 20);
                                // make sure it ends in a word
                                $Functie = substr($stringCut, 0, strrpos($stringCut, ' ')).'...'; 
                            }
                            if (strlen($Bedrijf) > 25) {
                                // truncate string
                                $stringCut2 = substr($Bedrijf, 0, 14);
                                // make sure it ends in a word
                                $Bedrijf = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                            }
                            if (strlen($Data) > 12) {
                                // truncate string
                                $stringCut2 = substr($Data, 0, 12);
                                // make sure it ends in a word
                                $Data = substr($stringCut2, 0, strrpos($stringCut2, ' ')).''; 
                            }
                            if (strlen($OmschrijvingKort) > 63) {
                                // truncate string
                                $stringCut2 = substr($OmschrijvingKort, 0, 63);
                                // make sure it ends in a word
                                $OmschrijvingKort = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                            }
                            //-display the result of the array
                            echo 
                            "
                                <div class='vacatureinfo2'>
                                    <img class='userimg2' src='../../uploads/userimage/". $Image ."' id='imge'/>
                                    <p class='func-br-pl pull-left'>". $Functie ." - ". $Bedrijf ." - ". $Plaats ."</p><p class='dtm pull-right'>". $Data ."</p>
                                    <div class='omschrijvingkort2'>
                                        ". $OmschrijvingKort ."
                                    </div>
                                    <a href='#' class='pull-right'>Meer informatie</a>
                                </div>
                                <hr>
                            ";
                        }
                    }
                    else{
                        echo  "<p>Please enter a search query</p>";
                    }
                }
            }//end of search form script

            // THIS PART BELOW WORKS FINE!

            if(isset($_GET['by'])){
                $letter=$_GET['by'];
                $letter=$db->quote($letter);
                $sql="SELECT v.vacatureID, v.werkgeverID, v.functie, v.omschrijvingKort, v.datum, w.werkgeverID, w.naamBedrijf, w.plaats, w.image FROM vacature AS v JOIN werkgever AS w ON v.werkgeverID = w.werkgeverID WHERE SUBSTRING(w.naamBedrijf,1,1) LIKE  '%" . $letter .  "%' ORDER BY datum DESC";
                //-run  the query against the mysql query function
                $result=$db->query($sql);
                //-count  results
                $numrows=mysql_num_rows($result);
                echo  "<p>" .$numrows . " results found for " . $letter . "</p>";
                //-create  while loop and loop through result set
                while($row=mysql_fetch_array($result)){
                    $Functie=$row['functie'];
                    $OmschrijvingKort=$row['omschrijvingKort'];
                    $Datum=$row['datum'];
                    $Bedrijf=$row['naamBedrijf'];
                    $Plaats=$row['plaats'];
                    $Image=$row['image'];
                    $ID=$row['vacatureID'];

                    $Data = date("d-m-Y", strtotime($Datum)); // $Datum omdraaien van Y-m-d naar d-m-Y
                    //-truncate
                    if (strlen($Functie) > 20) {
                        // truncate string
                        $stringCut = substr($Functie, 0, 20);
                        // make sure it ends in a word
                        $Functie = substr($stringCut, 0, strrpos($stringCut, ' ')).'...'; 
                    }
                    if (strlen($Bedrijf) > 25) {
                        // truncate string
                        $stringCut2 = substr($Bedrijf, 0, 14);
                        // make sure it ends in a word
                        $Bedrijf = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                    }
                    if (strlen($Data) > 12) {
                        // truncate string
                        $stringCut2 = substr($Data, 0, 12);
                        // make sure it ends in a word
                        $Data = substr($stringCut2, 0, strrpos($stringCut2, ' ')).''; 
                    }
                    if (strlen($OmschrijvingKort) > 63) {
                        // truncate string
                        $stringCut2 = substr($OmschrijvingKort, 0, 63);
                        // make sure it ends in a word
                        $OmschrijvingKort = substr($stringCut2, 0, strrpos($stringCut2, ' ')).'...'; 
                    }

                    //-display  the result of the array
                    echo 
                    "
                        <div class='vacatureinfo2'>
                            <img class='userimg2' src='../../uploads/userimage/". $Image ."' id='imge'/>
                            <p class='func-br-pl pull-left'>". $Functie ." - ". $Bedrijf ." - ". $Plaats ."</p><p class='dtm pull-right'>". $Data ."</p>
                            <div class='omschrijvingkort2'>
                                ". $OmschrijvingKort ."
                            </div>
                            <a href='#' class='pull-right'>Meer informatie</a>
                        </div>
                        <hr>
                    ";
                }
            }//end of our letter search script
            else{
                include('php/vacatureoverzichtphp.php');
            }
        ?>

0 个答案:

没有答案