我是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()我得到: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');
}
?>