Я создаю два поля, которые ищут между двумя входами. используя метод GET.PHP поиск с использованием BETWEEN не работает
<form name="search">
<input name="to" id="to" type="text" />
<input name="end" id="end" type="text" />
<input name="submit" id="submit" type="submit" />
</form>
<table border="1">
<tr>
<td>Name</td>
</tr>
<?php
if(isset($_GET['submit'])){
$db_host="localhost";
$db_username="root";
$db_password="";
$db_name="administrator";
$db_tb_name="customer_details";
$db_tb_usr_name="name";
$db_tb_npkgr_name="no_of_pkg";
mysql_connect("$db_host","$db_username","$db_password");
mysql_select_db("$db_name");
$s_name=mysql_real_escape_string($_GET['to']);
$m_name=mysql_real_escape_string($_GET['end']);
$query_for_result = mysql_query("SELECT * FROM $db_tb_name WHERE
$db_tb_npkgr_name BETWEEN '%".$s_name."%' AND '%".$m_name."%'");
while($data_fetch=mysql_fetch_array($query_for_result))
{
?>
<tr>
<td><?php echo substr($data_fetch[$db_tb_usr_name], 0,160); ?></td>
</tr>
<?php } mysql_close(); }?>
</table>
В этом коде вывод не отображается, но когда я использую одно поле для поиска, он работает правильно.
вот рабочий код для одного поиска. Я использую здесь LIKE-оператора.
<form name="search">
<input name="to" id="to" type="text" />
<input name="submit" id="submit" type="submit" />
</form>
<table border="1">
<tr>
<td>Name</td>
</tr>
<?php
if(isset($_GET['submit'])){
$db_host="localhost";
$db_username="root";
$db_password="";
$db_name="administrator";
$db_tb_name="customer_details";
$db_tb_usr_name="name";
$db_tb_npkgr_name="no_of_pkg";
mysql_connect("$db_host","$db_username","$db_password");
mysql_select_db("$db_name");
$s_name=mysql_real_escape_string($_GET['to']);
$query_for_result = mysql_query("SELECT * FROM $db_tb_name WHERE
$db_tb_npkgr_name LIKE '%".$s_name."%'");
while($data_fetch=mysql_fetch_array($query_for_result))
{
?>
<tr>
<td><?php echo substr($data_fetch[$db_tb_usr_name], 0,160); ?></td>
</tr>
<?php }
mysql_close(); }?>
</table>
Этот код отлично работает. Но когда я использую BETWEEN, тогда он ничего не показывает на выходе. Что случилось? Каково решение?
спасибо.
'BETWEEN' не работает как команда' LIKE'. Вы не можете использовать символы подстановки ('' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Кроме того, обязательное SQL-инъекции предупреждение. –
Тогда каково решение для этого кода? – Subhajit
http://dev.mysql.com/doc/refman/5.0/ru/comparison-operators.html#operator_between –