2015-05-12 1 views
0

ok, поэтому мне нужно найти базу данных для имен людей, родившихся между двумя датами, веб-сайт просит пользователя ввести дату в этом формате dd/mm/yyyy, поэтому мне нужно манипулировать, так что что он будет работать в моем sql-поиске. То, что я сделал этоSQL-запросы с использованием php

$date_1 = $_GET["date_1"]; 
 
$date_2 = $_GET["date_2"]; 
 

 
function reorderDate($date) { //30/11/1970 
 
    $firstbrk = strpos($date, '/'); 
 
    $day = substr($date, 0, $firstbrk); 
 
    $month = substr($date, $firstbrk + 1, -5); 
 
    $year = substr($date, strlen($date) - 4); 
 
    $corrDate = $year. 
 
    "-".$day. 
 
    "-".$month; 
 
    return $corrDate; 
 
} 
 

 
echo $Cdate_1 = reorderDate($date_1); 
 
echo $Cdate_2 = reorderDate($date_2); 
 

 
$tablename = 'Cyclist'; 
 
$sql = "SELECT name, dob FROM Cyclist WHERE dob > ' . $Cdate_1 . ' AND dob < ' . $Cdate_2 . ';"; 
 

 
$res = & $db - > query($sql); 
 
if (PEAR::isError($res)) { 
 
    die($res - > getMessage()); 
 
} 
 
echo "<br>"; 
 
echo $findings_numb = $res - > numRows(); 
 
while ($row = $res - > fetchRow()) { 
 
    echo $row[0]. 
 
    "\n"; 
 
}

Я не найдя ничего в базе данных, но если я использую эту строку поиска вместо этого я найти много результатов, почему?

$sql = "SELECT name, dob FROM Cyclist WHERE dob > '1970-30-11' AND dob < '1990-30-11';";

+0

Вы можете выйти ($ sql), чтобы посмотреть, что sql должен отлаживать? – harrrrrrry

ответ

0

изменение

$sql = "SELECT name, dob FROM Cyclist WHERE dob > ' . $Cdate_1 . ' AND dob < ' . $Cdate_2 . ';"; 

в

$sql = "SELECT name, dob FROM Cyclist WHERE dob > '" . $Cdate_1 . "' AND dob < '" . $Cdate_2 . "';"; 
+0

спасибо, что это сработало – Nimajik

+0

никаких проблем, yw) –

0

Попробуйте что-то вроде этого:

$sql = "SELECT name, dob FROM Cyclist WHERE dob > '$Cdate_1' AND dob < '$Cdate_2';"; 

Как вы используя двойные кавычки, вам не нужно вводить строки.

Смежные вопросы