Помощник
|
Поиск данных в БД |
gaaarfild
|
Сообщение
#1
|
||
|
|
||
|
|||
ThanDdoR |
17.2.2009, 0:12;
Ответить: ThanDdoR
Сообщение
#2
|
|
Смысли, ты хочешь сделать поиск по сайту?
|
|
|
ZiTosS |
17.2.2009, 0:58;
Ответить: ZiTosS
Сообщение
#3
|
|
gaaarfild, создавалась уже тема. Смотри...
1) Идёт запрос с формы <form method="POST" action=""> <input type="text" name="search"> <input type="submit" name="go_search" value="Найти"> </form> 2) Страница перезагружается, и если существует $_POST['go_search'] значит надо обработать запрос и вывести данные. <?php if(isset($_POST['go_search']) && strlen($_POST['search']) > 3) { $search = mysql_escape_stirng($_POST['search']); $query = "SELECT * FROM table WHERE pole LIKE '%{$search}%'"; $res = mysql_query($query) or die("Ошибка!"); if(mysql_num_rows($res) > 0) { while($array = mysql_fetch_array($res)) { echo "pole: {$array['pole']}"; } } } ?> Тупо нахождение запрашиваемого слова в одном из столбцов таблицы. Чтобы отобрать уникальные, не забываем использовать DISTINCT по определённому полю |
|
|
gaaarfild
|
Сообщение
#4
|
|
Как понять уникальные? Тоесть только один? Или те, которые только в единственном экземпляре присутствуют?
|
|
|
ZiTosS |
17.2.2009, 12:01;
Ответить: ZiTosS
Сообщение
#5
|
|
Нет. Это к примеру у тебя в таблице имеется поле с повторяющимися данными в записях. Если ты сделаешь по данному полю DISTINCT возьмутся записи только с уникальным значением этого поля. Если таковых записей с подобным значением больше одной, то возьмётся либо первая, либо последняя(просто не помню).
А вообще лучше использовать GROUP BY(поле) SELECT * FROM pdata GROUP BY(поле); Выведет по одной записи с уникальным поле, так же можно применить сортировку ORDER BY() |
|
|
gaaarfild
|
Сообщение
#6
|
|
Здорово! =) Огромное спасибо.
Еще уж вопрос тогда. Вот этот код генерит поля, в которых находятся кнопки с ID самого поля. Когда нажимаю удалить, он удаляет почему-то всегда последнее поле, а не то, в котором нажата кнопка. if (!isset($_GET['visdel_id'])) {
echo "<BR> <table width=''><TR><TH width=150>Код посещения</TH><TH width=150>Дата посещения</TH><TH width=400>Процедуры</TH><TH width=150>Стоимость</TH><TH></TH></TR>"; while($query_data = mysql_fetch_array($pq)) { echo "<TR><TD align='center'>{$query_data[id]}</td><TD align='center'>{$query_data[date]}</td><TD>{$query_data[procedure]}</td><TD align='right'>{$query_data[cash]} руб.</td><TD align='center'> <FORM action='{$_SERVER['PHP_SELF']}' method='GET'> <INPUT type='hidden' name='id' value='{$query_data[id]}'> <INPUT type='hidden' name='pac_id' value='{$pac_id}'> <INPUT type='submit' name='visdel_id' value='Удалить'> </td></tr>"; } echo "</table>"; } else { $id = $_GET['id']; $del = mysql_query("DELETE FROM visit WHERE id={$id}", $link_id); |
|
|
ZiTosS |
18.2.2009, 0:49;
Ответить: ZiTosS
Сообщение
#7
|
|
gaaarfild,
1) Всегда ключи массива ставь в кавычки, иначе ты тратишь дополнительное время. $query_data[id] В данном случае id проверяется на макроопределение, константу, а только затем уже как ключ массива, поэтому тратится больше времени. $query_data['id'] В данном случае интерпретатор сразу понимает что перед ним ключ массива, а не предопределённая константа. Поэтому советую писать так: {$query_data['id']}...............{$query_data['procedure']} 2) Всегда приходящие данные хоть GET, хоть POST методом нужно проверять. Приведение к целому числу всегда просто сделать, к примеру с тем же самым id $id = intval($_GET['id']); 3) Твоя же ошибка связанна с простой оплошностью. Стоит посмотреть в код, подумать как передаются данные, внимательно проверить что передаётся. Вывод: Кто за тебя форму будет закрывать? </form> Вот вроде и всё, но в следующий раз создавай новую тему, если даже будет похожий запрос, всё же одна тема в ответ на все вопросы не катит Поблагодарили: (0) |
|
|
gaaarfild
|
Сообщение
#8
|
|
Вот вечно я так из-за тупой невнимательности. А тебе Огромное спасибо!!!
|
|
|
FordogeN |
18.2.2009, 11:46;
Ответить: FordogeN
Сообщение
#9
|
|
Гааапфилд, ну дык нажми "Спасибо")))
зы. Могу предложить модернизировать поиск - сделать чтоб искало не фразу целиком, а чтоб на пример пробел и тире это разделяющие знаки и чтоб по запросу "купить слона в москве" находило и те страницы где написано "купить в москве слона" -------------------- |
|
|
gaaarfild
|
Сообщение
#10
|
|
|
Спасибо и предложи. =) Всегда не против поучиться. =)
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 15 | yaroslav89 | 6862 | 8.4.2024, 17:17 автор: spoyer_ru |
|
ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ [Чарджбек|Рекавери|Возврат] |
9 | Leado | 3911 | 9.2.2024, 16:04 автор: baza0013 |
|
Базы данных, различной тематики, выкладываем тут. Делимся, обмениваемся, заказываем, парсим. |
12 | InfoObmen | 15257 | 4.9.2022, 2:32 автор: Галецкая |
|
Сбор Данных Услуг И Специалистов Яндекс.Услуги | 2 | zkalinin | 2379 | 26.5.2022, 17:10 автор: zkalinin |
|
Smmsearch.net - поиск самой дешевой накрутки в социальных сетях. | 0 | Professor7717 | 3294 | 13.8.2021, 19:53 автор: Professor7717 |
Текстовая версия | Сейчас: 24.4.2024, 10:16 |