Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Плиз помогите с поиском в бд mysql по параметрам и ручному вводу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Плиз помогите с поиском в бд mysql по параметрам и ручному вводу
gudvin
Отправлено: 01 Апреля, 2009 - 01:57:35
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Вот нужно сделать на подобии поиск как реализован тут

http://uiits[dot]ruweb[dot]net/ips/ips_d[dot][dot][dot]age=1&type=1
логин:1 и пароль:1
И дальше нажимаете на любую ссылку В Поиске. Заранее спасибо!


-----
aMULT - Мультфильмы онлайн, аниме, adult swim amult[dot]ru
 
 Top
AlexGreF
Отправлено: 01 Апреля, 2009 - 20:54:08
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Март 2009  
Откуда: Амурка


Помог: 0 раз(а)




Всё просто. Нужно в зависимости от введённых(выбранных) данных формировать скриптом нужный sql запрос.
типа того:

PHP:
скопировать код в буфер обмена
  1. <? //index.php ?>
  2. <form action="script.php" method="POST">
  3. <select name="field">
  4.  <option value="speed">Скорость</option>
  5.  <option value="price">Цена</option>
  6.  <option value="year">Год</option>
  7. </select>
  8. &nbsp;
  9. <select name="operand">
  10.  <option value=">">></option>
  11.  <option value="<"><</option>
  12.  <option value="=">=</option>
  13. </select>
  14. &nbsp;
  15. <input type="text" name="value">
  16. <input type="submit" value="Искать">
  17. </form>

PHP:
скопировать код в буфер обмена
  1. <? //script.php
  2. extract($_POST);
  3. $sql = "SELECT * FROM `table` WHERE `".$field."`".$operand."'".$value."';
  4. $result = mysql_query($sql);
  5. while($ans = mysql_fetch_array($result)){
  6. print_r($ans).'<br>';
  7. }
  8. ?>

Принцип такой. Ещё нужно реализовать в форме запроса кнопочку " + " для задания операнда "OR" или "AND". Это делается яваскриптом.
Значения передавать в виде массивов(в форме написать не '<select name="operand">' ,а '<select name="operand[]">' , так для всех полей), и потом в скрипте пробегаться по всему массиву. Думаю понятно.


-----
Моё место во фрилансе - http://weblancer[dot]net/users/alexsava
 
 Top
Stierus Супермодератор
Отправлено: 02 Апреля, 2009 - 13:16:13
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




симпотичный сайтик, ты писал ?
 
My status
 Top
gudvin
Отправлено: 02 Апреля, 2009 - 13:53:44
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Нет, если бы я то не спрашивал бы такие вопросы) И по скрипту который выше описан ошибка на Parse error: syntax error, unexpected $end идет и не помогает добавить <?php в начало
(Добавление)
Все разобрался, скрипт рабочий. Спасибо огромное!!!!!

А как сделать поиск по нескольким критериям сразу?


-----
aMULT - Мультфильмы онлайн, аниме, adult swim amult[dot]ru
 
 Top
Champion Супермодератор
Отправлено: 05 Апреля, 2009 - 17:59:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Перенесено из темы "Помогите с реализацией поиска на бд!"
Например, так:
PHP:
скопировать код в буфер обмена
  1. $query = 'SELECT * FROM tbl WHERE ';
  2. $and = ''
  3. ЦИКЛ по параметрам поиска {
  4.         ЕСЛИ параметр не пустой, то {
  5.                 $query += $and.$field_name[$i]'. = '.$param;
  6.                 $and = ' AND ';
  7.         }
  8. }
 
 Top
gudvin
Отправлено: 08 Апреля, 2009 - 22:05:12
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Перенесено из темы "Помогите с реализацией поиска на бд!"
Куда это добавить чего то не выходит.
Вот то что у меня:
фрма сама:
<? //index.php ?>
<form action="script.php" method="POST">
<select name="field">
<option value="speed">Скорость</option>
<option value="price">Цена</option>
<option value="year">Год</option>
</select>
&nbsp;
<select name="operand">
<option value=">">&gt;</option>
<option value="<">&lt;</option>
<option value="=">=</option>
</select>
&nbsp;
<input type="text" name="value">
<input type="submit" value="Искать">
</form>

и сам скрипт

<? //script.php
extract($_POST);
$sql = "SELECT * FROM `table` WHERE `".$field."`".$operand."'".$value."';
$result = mysql_query($sql);
while($ans = mysql_fetch_array($result)){
print_r($ans).'<br>';
}
?>


-----
aMULT - Мультфильмы онлайн, аниме, adult swim amult[dot]ru
 
 Top
Champion Супермодератор
Отправлено: 12 Апреля, 2009 - 02:10:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Перенесено из темы "Помогите с реализацией поиска на бд!"
Это добавлять в тот скрипт, который ты назвал "сам скрипт" в своем посте. Оформи код тэгами пожалуйста.
 
 Top
gudvin
Отправлено: 15 Апреля, 2009 - 06:16:40
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Перенесено из темы "Помогите с реализацией поиска на бд!"
Эти скрипты мне тоже помогли написать в этой теме
http://forum.php.su/topic.php?fo...28&topic=782 они работают поиск идет, но можно выбрать один параметр. а на сайте который я давал ссылку можно хоть до бесконечности выбирать условия поиска. что и хотелось бы сделать.


-----
aMULT - Мультфильмы онлайн, аниме, adult swim amult[dot]ru
 
 Top
Champion Супермодератор
Отправлено: 18 Апреля, 2009 - 10:22:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Перенесено из темы "Помогите с реализацией поиска на бд!"
gudvin. Это я уже понял. Куда вставлять, я тебе сказал. Что еще тебе осталось не понятно? Обычный кодер в состоянии перевести на язык программирования то, что написано псевдоязыком. Тем более, это не такой уж псевдоязык, а почти тот же php.
Процитируй строку и моего алгоритма, которую ты не знаешь как реализовать.
(Добавление)
А темы плодить по одной проблеме не надо.
 
 Top
gudvin
Отправлено: 03 Мая, 2009 - 13:35:18
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Все равно не понимаю. Мне же в форме поиска надо сделать кнопку допустим "добавить параметр" и должна появится еще одна строка с новым параметром. Ну как на сайте этом реализовано. А то что вы скинули я не понимаю куда вообще все это вставлять

Вот у меня сама форма поиска
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.        <br>
  4.  <table width="1000" border="1">
  5.            <form action="poisk.php" method="POST">
  6. <select name="field">
  7.  <option value="u_nom">U,ном.В</option>
  8.  <option value="rab_d1">Раб.диап.В1</option>
  9.  <option value="rab_d2">Раб.диап.В2</option>
  10.  <option value="k">K</option>
  11.  <option value="z01">z01,Ом</option>
  12.  <option value="nom_ch_vozb">Ном.f.U.возбужд.Гц</option>
  13.  <option value="diap_ch_vozb1">Дип.раб.f.U(от)</option>
  14.  <option value="diap_ch_vozb2">Дип.раб.f.U(до)</option>
  15.  <option value="izm_kt_t">Изм.к-та.t</option>
  16.  
  17.  <option value="nvv1">N1.об/мин</option>
  18.  <option value="nvv2">N2.об/мин</option>
  19.  <option value="m_st">M</option>
  20.  
  21.  <option value="pogr_st">Погр.ст</option>
  22.  <option value="izm_kt_n">Изм.к-та.напр.возд.%</option>
  23.  <option value="izm_sf_nv">Изм.фазы,ЭДС</option>
  24.  <option value="izm_npr_nv">Изм.нул.пол.ротр.</option>
  25.  <option value="izm_sf_t">Изм.фазы,t</option>
  26.  <option value="n_vr">N,вр.</option>
  27.   <option value="izm_ps_pr">Изм.перех.сопр.</option>
  28.  <option value="m">m,кг</option>
  29.  <option value="pogr_olz">Погр.отбр.лин.захв.</option>
  30.   <option value="ost_eds">Ост.ЭДС</option>
  31.  <option value="i">I,A</option>
  32.  <option value="r">Rxx,Om</option>
  33.   <option value="f_nagr1">fнагр1,Гц</option>
  34.  <option value="f_nagr2">fнагр2,Гц</option>
  35.  <option value="a_nagr">aнагр,м/с2</option>
  36.   <option value="g">G,м/с2</option>
  37.  <option value="tb">,град.С</option>
  38.  <option value="tn">Тн,град.С</option>
  39.   <option value="vlazn">Влажность %</option>
  40.  <option value="tr">tr,ч</option>
  41.  <option value="pogr_sin">Погр.sin</option>
  42.  
  43. </select>
  44. &nbsp;
  45. <select name="operand">
  46.  <option value=">">></option>
  47.  <option value="<"><</option>
  48.  <option value="=">=</option>
  49.  <option value="=">&ge;</option>
  50.  <option value="=">&le;</option>
  51.  <option value="=">&ne;</option>
  52. </select>
  53. &nbsp;
  54. <input type="text" name="value">
  55. <input type="submit" value="Искать">
  56. </form>
  57.  
  58.       </table>
  59.  
  60.  
  61.  


и сам поиск:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.           <?
  4.   // Осуществляем соединение с базой данных
  5.  
  6.  
  7. include "config1.php";
  8.   // Извлекаем из строки запроса параметр start
  9.  
  10. extract($_POST);
  11. $sql = "SELECT * FROM `parametri` WHERE `".$field."`".$operand."'".$value."'";
  12. $result = mysql_query($sql);
  13.  
  14.  
  15. if(isset($_GET['start'])) $start = $_GET['start'];
  16.   else $start = "";
  17.   // $start может принимать либо числовые значения, либо
  18.   // пустое значение
  19.   if(!preg_match("|^[\d]+$|",$start) && !empty($start)) exit();
  20.   // Стартовая точка
  21.   if (empty($start)) $start = 0;
  22.   $start = intval($start);
  23.   if ($start < 0) $start = 0;
  24.  
  25.  
  26. // Запрашиваем общее число отображаемых сообщейний
  27.   $query = "SELECT count(*) FROM parametri
  28.            WHERE hide = 'show'";
  29.  
  30.   $tot = mysql_query($query);
  31.   // Запрашиваем сами сообщения
  32.   $query = "SELECT * FROM parametri
  33.            WHERE hide = 'show'
  34.            ORDER BY id
  35.  
  36.          ASC LIMIT $start, $pnumber";
  37.   $thm = mysql_query($query);
  38.  
  39. if(!$tot || !$thm) puterror("Ошибка при выборке сообщений...");
  40.   // Общее число отображаемых сообщений
  41.   $count = mysql_result($tot,0);
  42.  
  43.  
  44.  ?>
  45.  
  46.  

(Добавление)
И я к сожалению не кодер( Только начинаю во что то вникать.


-----
aMULT - Мультфильмы онлайн, аниме, adult swim amult[dot]ru
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB