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 :: форма поиска

 PHP.SU

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


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

> Описание: форма поиска для пользователей из базы данных
andy89
Отправлено: 31 Января, 2010 - 21:07:12
Post Id


Новичок


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


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




Привет всем!
У меня есть маленькая проблема, есть форма поиска для пользователей из базы данных по заданным критериям, вот форма:
CODE (html):
скопировать код в буфер обмена
  1. <form name="login" action="view_user.php" method="post">
  2.  
  3.   <div id="username">    
  4.     <label for="username-field" class="overlabel">nume...</label>
  5.     <input id="username-field" type="text" name="nume">  /
  6.   </div>
  7.   <div id="password">
  8.     <label for="password-field" class="overlabel">prenume...</label>
  9.     <input id="password-field" type="text" name="prenume">
  10.   </div>
  11.   <br>
  12.   <br>
  13.   <p>
  14.   <span style="color:#999;">sex:</span>
  15.   <br>
  16.   <div class="radio">
  17.     <label>
  18.       <input type="radio" name="sexul" value="masculin" >
  19.       barbati</label>
  20.    <br>
  21.     <label>
  22.       <input type="radio" name="sexul" value="feminin" >
  23.       femei</label>
  24.     <br>
  25.     <label>
  26.       <input type="radio" name="sexul" value="all" checked>
  27.       toti</label>
  28.   </p>
  29.   </div>
  30.   <br>
  31.   <span style="color:#999;">virsta (de la / pina la):</span><br><br>
  32.  <span style="margin-left:30px;"><input type="text" name="dela" size="3" maxlength="3"> /
  33.  <input type="text" name="dela" size="3" maxlength="3"></span>
  34.   <br><br>
  35.   <span style="color:#999;">Tara:</span>
  36.   <select name="tara">
  37.   <option>-</option>
  38.   <? include ("../country.php");?></select>
  39.   <br><br>
  40.    <span style="color:#999;">Oras:</span>
  41.   <input type="text" name="city">
  42.   <br><br>
  43.   <center><input type="submit" name="submit" value="Cauta" class="submit"></center>
  44.  
  45. </form>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db = mysql_connect ("localhost","test","12345");
  3. mysql_select_db("testsait",$db);
  4. ?>

все пользователи находятся в базе данных (user)
больше не знаю!
Нечто подобное можно найти на сайте odnoklassniki.ru в подменю "Расширенные параметры"
Пожалуйста, помогите мне! Огорчение
Прикреплено изображение (Нажмите для увеличения)
Снимок.JPG
 
 Top
JustUserR
Отправлено: 01 Февраля, 2010 - 00:53:38
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




andy89 Вас интересуют параметры where - ну к примеру в вашем случае SELECT * FROM user WHERE name='$nume' AND prename='$prenume' AND sexul='$sexul' LIMIT 0,30 Для более сложных форм поиска используются вложенные запросы


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
andy89
Отправлено: 01 Февраля, 2010 - 02:03:16
Post Id


Новичок


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


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




SELECT * FROM user WHERE name='$nume' AND prename='$prenume' AND sexul='$sexul' LIMIT 0,30 Этот код не трудно писать, но если, например: $prenume равна XXX а в базе данных несуществует , тогда он ничего не найдет, а мне нужно если одна из них нету или не ввели то продолжал поик по другим!
помогите Огорчение
 
 Top
JustUserR
Отправлено: 01 Февраля, 2010 - 02:14:14
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




andy89 пишет:
А мне нужно если одна из них нету или не ввели то продолжал поик по другим
В самом простом случае можете заменить AND на OR и тогда будет искать по любому из критериев
Если же опущенный критерий означает то что по нему искать не надо то можете динамически формировать запрос - if($_POST['критерий']) то добавляем его в SQL-запрос - а иначе не добавляем


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
andy89
Отправлено: 01 Февраля, 2010 - 08:18:29
Post Id


Новичок


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


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




if($_POST['критерий']) то добавляем его в SQL-запрос - а иначе не добавляем - как это делать????????? Если вы можете написать пример, Пожалуйста, напишите! Подмигивание Подмигивание Подмигивание
 
 Top
RomAndry Администратор
Отправлено: 01 Февраля, 2010 - 09:38:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




примерно так
PHP:
скопировать код в буфер обмена
  1.  
  2. $where '...';
  3. if(isset($_POST['критерийA'])) {
  4.   $where.= '....';
  5. }
  6. if(isset($_POST['критерийB'])) {
  7.   $where.= '....';
  8. }
  9. $sql = "SELECT....WHERE ".$where;
  10.  
 
My status
 Top
andy89
Отправлено: 01 Февраля, 2010 - 10:43:34
Post Id


Новичок


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


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




RomAndry а если существует оба критерии тогда в переменной $where будет только один критерий ($_POST['критерийA']) и поис не даст нужный результат!
есть ищё идея? Однако
 
 Top
RomAndry Администратор
Отправлено: 01 Февраля, 2010 - 11:48:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




$where.=
hint: внимательно смотрим на точку Подмигивание
 
My status
 Top
andy89
Отправлено: 01 Февраля, 2010 - 12:12:54
Post Id


Новичок


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


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




RomAndry Но как это работает,просьба кратко описать! Однако
 
 Top
RomAndry Администратор
Отправлено: 01 Февраля, 2010 - 12:19:49
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




А попробовать? =)
PHP:
скопировать код в буфер обмена
  1.  
  2. $a = 'a';
  3. $b = 'b';
  4. $a = 'c';
  5. $b.= 'd';
  6. echo $a;
  7. echo '<BR>';
  8. echo $b;
  9.  
 
My status
 Top
andy89
Отправлено: 01 Февраля, 2010 - 12:36:28
Post Id


Новичок


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


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




$where.= '....'; что значит эта точка? Однако
 
 Top
RomAndry Администратор
Отправлено: 01 Февраля, 2010 - 12:37:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




Вы сделали мой последний пример?
Результат какой?
Какие мысли он наводит?
 
My status
 Top
andy89
Отправлено: 01 Февраля, 2010 - 12:48:29
Post Id


Новичок


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


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




кажется, понял!
есть где-то более подробное информация об этом методе? и где?
 
 Top
RomAndry Администратор
Отправлено: 01 Февраля, 2010 - 12:57:40
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




andy89 пишет:
кажется, понял!
есть где-то более подробное информация об этом методе? и где?


PHP[dot]SU syntax
 
My status
 Top
JustUserR
Отправлено: 01 Февраля, 2010 - 13:17:56
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




andy89 Точка это просто соединение (Так называемая конкатенация) строк и господин RomAndry как раз описал вам предложенную мною вам идею - использовать последовательное добавление критериев Только надо учесть несколько крайних факторов - скажем если нет ни одного критерия то слово WHERE надо будет вообще убрать (А то будет синтаксическая ошибка SQL Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB