[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите разобраться с запросом
fanat-vlg
Помогите плз. не могу никак воплотить вроде бы простой запрос, то ли чего то не замечаю то ли неправильно делаю. Заранее прошу не обращать внимание на безопасность и т.п. все это для понятия принципа работы и работать это будет в интрасети т.ч. ни о каком взломе или т.п. речи быть не может.

итак имеем БД mysql в ней таблица со следующими данными.

id--------int(4)-- UNSIGNED ZEROFILL---auto_increment
ip-------- text--- cp1251_general_ci - ипишник тачки
ip_name-- text--cp1251_general_ci - имя тачки
ip_dolg---- text---cp1251_general_ci - должность владельца
ip_fio------ text---cp1251_general_ci - ФИО
ip_phone-- text---cp1251_general_ci - телефон
ip_predpr--text---cp1251_general_ci - предприятие
ip_admin-- text---cp1251_general_ci - кто курирует предприятие

может я не правильно таблицу сделал хз.

есть форма в которой набираем запросные данные и нам выдает список с этими данными построчно.

форма такого типа

HTML
<table width="549" border="1">
<tr>
<td width="58%">IP адрес </td>
<td width="42%">
<input type="text" name="ip" vavue="'.$_POST['$ip'].'" />
</td>
</tr>
<tr>
<td>Имя компьютера</td>
<td><input type="text" name="ip_name" vavue="'.$_POST['$ip_name'].'"/></td>
</tr>


теперь сам запрос, пробовал делать на =,like,regexp(никак не получилось)

SQL
$query = "SELECT * FROM ip_base.ip_data WHERE ip LIKE '$ip_adr%' or ip_name LIKE '$ip_name%' or ip_dolg LIKE '$ip_dolg%' or ip_fio LIKE '$ip_fio%' or ip_phone LIKE '$ip_phone%' or ip_predpr LIKE '$ip_predpr%' or ip_admin LIKE '$ip_admin%'";


запрос такого вида вроде работает но не по всем данным, по каким то выдает по каким то выдает все таблицу без выбора.
А я хочу чтобы к примеру набрал IP 94.25.23. - и выдает список этого диапазона или телефон 95-35- и выдает список.

направте на путь истинный.



Спустя 16 часов, 9 минут, 9 секунд (3.03.2009 - 14:36) fanat-vlg написал(а):
ну вот пока вы мне помогали советами я еще докопался до следующего.

пробую опять через regexp заработало но работает только по первой переменной стоящей в запросе такого вида.

PHP
$query "SELECT * FROM ip_base.ip_data WHERE ip regexp '{$_POST['ip']}' or ip_name regexp '{$_POST['ip_name']}' or ip_dolg regexp '{$_POST['ip_dolg']}' or ip_fio regexp '{$_POST['ip_fio']}' or ip_phone regexp '{$_POST['ip_phone']}' or ip_predpr regexp '{$_POST['ip_predpr']}' or ip_admin regexp '{$_POST['ip_admin']}' LIMIT 20";


подскажите как правильно использовать regexp ????

при запросе других переменных выдает.

Got error 'empty (sub)expression' from regexp

или подскажите плз. форум на котором больше народу, тут я смарю сам спросил, сам подсказал, сам ответил и всех поблагодарил.

Спустя 18 минут, 56 секунд (3.03.2009 - 14:55) fanat-vlg написал(а):
почему вот так работает

PHP
$query "SELECT * FROM ip_base.ip_data WHERE ip regexp '{$_POST['ip']}'";


а так нет

PHP
$query "SELECT * FROM ip_base.ip_data WHERE ip regexp '{$_POST['ip']}' or ip_name regexp '{$_POST['ip_name']}' 
            or ip_dolg regexp '{$_POST['ip_dolg']}' or ip_fio regexp '{$_POST['ip_fio']}' 
            or ip_phone regexp '{$_POST['ip_phone']}' or ip_predpr regexp '{$_POST['ip_predpr']}' 
            or ip_admin regexp '{$_POST['ip_admin']}' LIMIT 20"
;


выдает

Got error 'empty (sub)expression' from regexp

Спустя 18 часов, 57 минут, 33 секунды (4.03.2009 - 09:53) fanat-vlg написал(а):
читал я тут один вопрос заданный не помню кем, ситуация была такая:
он: задал вопрос
он: предложил идею
и он же: ответил на вопрос
потом он: всех поблагодарил.

вот и я сам спросил, сам ответил. благодарить правда некого.

может еще кому такое надо будет выкладываю решение правда через like %...%

не нашел решения через regexp, но там связано с POSIX (используется для апача)

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

PHP
$query "SELECT * FROM ip_base.ip_data WHERE ip like '%$ip_adr%' and ip_name like '%$ip_name%' 
            and ip_dolg like '%$ip_dolg%' and ip_fio like '%$ip_fio%' 
            and ip_phone like '%$ip_phone%' and ip_predpr like '%$ip_predpr%' 
            and ip_admin like '%$ip_admin%'"
;

Спустя 12 минут, 17 секунд (4.03.2009 - 10:05) sergeiss написал(а):
Цитата (fanat-vlg @ 4.03.2009 - 09:53)
вот и я сам спросил, сам ответил. благодарить правда некого.

Ну почему же? Сам себя поблагодари smile.gif
Моя супруга любит говорить "Сам себя не похвалИшь - как оплёваный сидИшь" smile.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.