powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php и MySQL
25 сообщений из 65, страница 2 из 3
php и MySQL
    #37932881
ПрограмёрМинин ИгорьПрограмёр,

Спасибо большое за помощь. Осталось это сформулировать с технической части, но уже есть путь в каком направлении двигаться. =) А если делать дополнительную таблицу с провайдерами, то получается при поиске он будет брать название таблицы, где найден адрес и потом сопоставлять его с этой дополнительной страницей и уже выдавать конечный результат? =)
Да. Или читать строку доп. таблицы, бежать по найденому названию в таблицу провайдера, искать нужные совпадения и если нашёл - выводить соответствующую страницу. Система более универсальная, так как в коде не будет жёсткой привязки к таблицам и при появлении нового провайдера или удалении старого не прийдётся править код

Спасибо большое за помощь.

И все это "добро" получается нужно прописать в файл, на который ссылается поисковая форма при запросе? И я так полагаю в эту же штуку можно спокойно, если разобраться, впихнуть сразу же "живой поиск"? :)
...
Рейтинг: 0 / 0
php и MySQL
    #37932912
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минин ИгорьПрограмёрпропущено...

Да. Или читать строку доп. таблицы, бежать по найденому названию в таблицу провайдера, искать нужные совпадения и если нашёл - выводить соответствующую страницу. Система более универсальная, так как в коде не будет жёсткой привязки к таблицам и при появлении нового провайдера или удалении старого не прийдётся править код

Спасибо большое за помощь.

И все это "добро" получается нужно прописать в файл, на который ссылается поисковая форма при запросе? И я так полагаю в эту же штуку можно спокойно, если разобраться, впихнуть сразу же "живой поиск"? :)

Да, но оптимальный живой поиск использует ajax, так как грузить весь массив данных (особенно если база огромная, как у гугла например) это накладно по ресурсам (в случае с огромными базами это вообще невозможно)

Так что советую сначала оформить простой поиск, что бы работал, а уже потом доучивать и дописывать))
...
Рейтинг: 0 / 0
php и MySQL
    #37932954
Програмёр,

Спасибо, буду пробовать. =)
...
Рейтинг: 0 / 0
php и MySQL
    #37934586
Не сочтите за наглость, но не подскажите еще пару моментов. =))
Если я в таблицу с адресами добавил столбец с ссылкой на страницу в виде (page.php). То как при поиске сделать, чтобы он именно открыл этот файл, а не прописал содержимое ячейки, найдя ключевые слова в данной строке. т.е. не прописывал как результат "page.php", а именно загрузил его?

Надеюсь правильно выразился...

И если таких таблиц много, то нужно делать запрос каждой из них? Нельзя это написать все одним запросом, к н-му количество таблиц?
...
Рейтинг: 0 / 0
php и MySQL
    #37934640
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Минин Игорь, так вам уже говорили, что не надо делать много таблиц.
...
Рейтинг: 0 / 0
php и MySQL
    #37934651
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минин ИгорьНе сочтите за наглость, но не подскажите еще пару моментов. =))
Если я в таблицу с адресами добавил столбец с ссылкой на страницу в виде (page.php). То как при поиске сделать, чтобы он именно открыл этот файл, а не прописал содержимое ячейки, найдя ключевые слова в данной строке. т.е. не прописывал как результат "page.php", а именно загрузил его?

Надеюсь правильно выразился...

И если таких таблиц много, то нужно делать запрос каждой из них? Нельзя это написать все одним запросом, к н-му количество таблиц?
Код: php
1.
2.
$provider = mysql_fetch_array($res);
include($provider['link']);


Код: sql
1.
UNION ALL
...
Рейтинг: 0 / 0
php и MySQL
    #37936462
Доброй ночи, у меня по теме возник еще вопрос, но уже у меня что-то получилось. Сначала код, как это у меня написано, потом вопрос.


Сама форма:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<form name="search" action="search.php" method="post">
<div style="width:320px; float:left">
<input style="width:170px; 	margin-right:32px;" placeholder="Введите улицу" type="text" name="query" autofocus="autofocus" required="required" lang="ru" autocomplete="off" id="search11" />
<input style="width:37px; margin-right:23px;" placeholder="Дом" type="text" name="dom" maxlength="5" autocomplete="off" lang="ru" />
<input style="width:30px; margin-right:0px; padding-right:0px;" placeholder="Корп." type="text" name="korp" maxlength="3" autocomplete="off" lang="ru"/>    
</div>
<div style="width:98px; margin-left:320px; padding-top:18px;">
<input style="margin-top:0px;" type="submit" class="subm" value=""/>
</div>
</form>



сам поиск:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$query = "(SELECT dom FROM  `table` WHERE  `adress` LIKE  '%$query%' AND 'dom' LIKE '%$dom%')  UNION ALL (SELECT dom FROM  `table2` WHERE  `adress` LIKE  '%$query%') UNION ALL (SELECT adress FROM  `table2` WHERE  `adress` LIKE  '%$query%') ";
$result = mysql_query($query) or die("Запрос ошибочный");
/* Печать результатов в HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
print "\t<tr>\n";
for ($i=0;$i<=3;$i++) { print "\t\t<td>$line[$i]</td>\n"; }
print "\t</tr>\n";
}
print "</table>\n";



Суть вопроса такая, поиск по нескольким таблицам и одному запросу проходит отлично, все выдает, что надо, но когда хочу добавить еще одно условие поиска (на примере первого селект) он перестает искать. В чем может быть проблема, что не так я делаю?? И еще один вопрос, в такой схеме у меня перестал выдавать "запрос ошибочный", если ничего не было найдено, вместо этого пустое окно. В чем может быть косяк?

В дальнейшем должен производиться поиск с 3 запросами, но 3-ий запрос необязательный, как это можно учесть при поиске. LIKE ищет по точному совпадению, что будет если один запрос будет пустым, он будет искать или нужно в таком случае задавать этому значению "0" и в таблице в этом столбике ставить по умолчанию NULL?

И последний вопрос, по поводу:
Код: php
1.
2.
$provider = mysql_fetch_array($res);
include($provider['link']);

в каком виде должна быть ссылка в таблице, чтобы он ее так вот открыл? и будет ли такая схема работать, если несколько таблиц, и во всех них было найдено ключевое слово из поиска??
...
Рейтинг: 0 / 0
php и MySQL
    #37936532
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
$result = mysql_query($query) or die(mysql_error());
...
Рейтинг: 0 / 0
php и MySQL
    #37936588
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Минин Игорь]WHERE `adress` LIKE '%$query%' AND 'dom' LIKE '%$dom%'[/src]
Читать
...
Рейтинг: 0 / 0
php и MySQL
    #37936699
Hett
Код: php
1.
$result = mysql_query($query) or die(mysql_error());



Все так же, не изменилось
...
Рейтинг: 0 / 0
php и MySQL
    #37936849
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и пишет "Запрос ошибочный"? :)
...
Рейтинг: 0 / 0
php и MySQL
    #37936877
HettТак и пишет "Запрос ошибочный"? :)

ничего не выдает, я понимаю, что в die(mysql_error()) нужно прописывать в, что он должен выдавать в этом случае :)

Еще я заметил, что хоть у меня и стоит LIKE, но он все равно находит совпадения, даже если ввести букву, которая есть в таблице...
...
Рейтинг: 0 / 0
php и MySQL
    #37936902
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторничего не выдает, я понимаю, что в die(mysql_error()) нужно прописывать в, что он должен выдавать в этом случае :)

А вместо того, чтобы строить догадки, прочитать мануал по mysql_error() нельзя?

Еще я заметил, что хоть у меня и стоит LIKE, но он все равно находит совпадения, даже если ввести букву, которая есть в таблице...
...
Рейтинг: 0 / 0
php и MySQL
    #37936905
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нечайно отправил

Код: php
1.
Еще я заметил, что хоть у меня и стоит LIKE, но он все равно находит совпадения, даже если ввести букву, которая есть в таблице...


а не должен?
...
Рейтинг: 0 / 0
php и MySQL
    #37936940
Hettнечайно отправил

Код: php
1.
Еще я заметил, что хоть у меня и стоит LIKE, но он все равно находит совпадения, даже если ввести букву, которая есть в таблице...



а не должен?

Должен, это я ступил, только сейчас понял это... Так что извиняюсь, за глупый вопрос =)
А как сделать точное совпадение, не подскажешь??
...
Рейтинг: 0 / 0
php и MySQL
    #37936989
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
% - означает любое количество символов. Если нужно точное совпадение, убирайте из шаблона %.
...
Рейтинг: 0 / 0
php и MySQL
    #37936996
Hett% - означает любое количество символов. Если нужно точное совпадение, убирайте из шаблона %.

На какой мелочи я пролетел. Спасибо.

Мда, изучать мне это все и изучать.
...
Рейтинг: 0 / 0
php и MySQL
    #37938014
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$query = "
(SELECT url FROM `table` WHERE ((adress LIKE '$adress' AND dom LIKE '$dom') OR (adress LIKE '$adress' AND dom LIKE '$dom' AND korp LIKE '$korp' )) LIMIT 1)
UNION ALL 
(SELECT url FROM `table` WHERE ((adress LIKE '$adress' AND dom LIKE '$dom') OR (adress LIKE '$adress' AND dom LIKE '$dom' AND korp LIKE '$korp' )) LIMIT 1)
";
$result = mysql_query($query) or die(mysql_error());
/* Печать результатов в HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
print "\t<tr>\n";
for ($i=0;$i<=3;$i++) { print "\t\t<td>$line[$i]</td>\n"; }
print "\t</tr>\n";
}
print "</table>\n";



Народ, у меня остался последний нерешенный вопрос, остальное благо вышло как надо... код прилагается. В общем у меня в таблицах 4 столбца (adress,dom,korp,url), в последнем храниться название php файла, который надо включить. в виде (page.php)...

Когда пытался использовать команду, что мне написал Ренат:

Код: sql
1.
2.
$provider = mysql_fetch_array($result);
include($provider['link']);



у меня вообще переставал искать.
В чем может быть проблема?? Как мне включить эту страницу на сайт, а не просто прописать ее название как текст? Буду очень признателен, осталось эту задачу решить и поиск будет полностью готов!
...
Рейтинг: 0 / 0
php и MySQL
    #37938127
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитать документацию по include
Поглядеть что в переменной $provider['link']
...
Рейтинг: 0 / 0
php и MySQL
    #37938129
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включить отображение ошибок
...
Рейтинг: 0 / 0
php и MySQL
    #37938187
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минин Игорь
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$query = "
(SELECT url FROM `table` WHERE ((adress LIKE '$adress' AND dom LIKE '$dom') OR (adress LIKE '$adress' AND dom LIKE '$dom' AND korp LIKE '$korp' )) LIMIT 1)
UNION ALL 
(SELECT url FROM `table` WHERE ((adress LIKE '$adress' AND dom LIKE '$dom') OR (adress LIKE '$adress' AND dom LIKE '$dom' AND korp LIKE '$korp' )) LIMIT 1)
";
$result = mysql_query($query) or die(mysql_error());
/* Печать результатов в HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
print "\t<tr>\n";
for ($i=0;$i<=3;$i++) { print "\t\t<td>$line[$i]</td>\n"; }
print "\t</tr>\n";
}
print "</table>\n";



Народ, у меня остался последний нерешенный вопрос, остальное благо вышло как надо... код прилагается. В общем у меня в таблицах 4 столбца (adress,dom,korp,url), в последнем храниться название php файла, который надо включить. в виде (page.php)...

Когда пытался использовать команду, что мне написал Ренат:

Код: sql
1.
2.
$provider = mysql_fetch_array($result);
include($provider['link']);



у меня вообще переставал искать.
В чем может быть проблема?? Как мне включить эту страницу на сайт, а не просто прописать ее название как текст? Буду очень признателен, осталось эту задачу решить и поиск будет полностью готов!

хм... сразу по оптимизации:
Код: plsql
1.
(adress LIKE '$adress' AND dom LIKE '$dom') OR (adress LIKE '$adress' AND dom LIKE '$dom' AND korp LIKE '$korp' )


если второе условие вернёт true, то и первое вернёт true. то есть, нету такого варианта, когда второе вернёт истину, а первое ложь, а поэтому оставляем только первую проверку (вторая лишняя):
Код: plsql
1.
adress LIKE '$adress' AND dom LIKE '$dom'


а теперь по основному вопросу... не работает потому, что $provider = mysql_fetch_array($result); запишет в переменную массив, соответствующий одной строке выборки. из таблицы мы выбираем только столбик url, а значит и массив будет содержать только один ключ $provider['url'], а $provider['link'] останется неидентифицированным. то есть инклуд надо писать так:
Код: php
1.
include($provider['url']);



p.s. Очень советую почитать литературу по основам взаимодействия пхп и sql (их, основы, можно изучить за несколько дней не напряжённого чтения).
...
Рейтинг: 0 / 0
php и MySQL
    #37938254
Програмёр
Код: php
1.
include($provider['url']);



Так и прописывал. Не выдавал :(


Програмёресли второе условие вернёт true, то и первое вернёт true. то есть, нету такого варианта, когда второе вернёт истину, а первое ложь, а поэтому оставляем только первую проверку (вторая лишняя)

У меня в поиске 3 запроса (последний - не обязательный для ввода). Как мне тогда учесть, если ввели еще третье условие '$korp' ?

Програмёрp.s. Очень советую почитать литературу по основам взаимодействия пхп и sql (их, основы, можно изучить за несколько дней не напряжённого чтения). Сам хочу этим заняться, когда поиск разгребу, понимаю что много тут не знаю еще.
...
Рейтинг: 0 / 0
php и MySQL
    #37938274
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минин ИгорьПрограмёр
Код: php
1.
include($provider['url']);



Так и прописывал. Не выдавал :(


Програмёресли второе условие вернёт true, то и первое вернёт true. то есть, нету такого варианта, когда второе вернёт истину, а первое ложь, а поэтому оставляем только первую проверку (вторая лишняя)

У меня в поиске 3 запроса (последний - не обязательный для ввода). Как мне тогда учесть, если ввели еще третье условие '$korp' ?

Програмёрp.s. Очень советую почитать литературу по основам взаимодействия пхп и sql (их, основы, можно изучить за несколько дней не напряжённого чтения). Сам хочу этим заняться, когда поиск разгребу, понимаю что много тут не знаю еще.

1. на сервере путь файла обычно: /home/user/domen/www/относительный путь. Могу предположить, что в базу записывается именно относительный путь к файлу, который благополучно не находится (пхп файл просто не видит) если написать echo $provider['url'] что выдаст?

2. запрос в пхп будет выглядеть так:
Код: php
1.
2.
3.
4.
5.
$query = "
(SELECT url FROM `table` WHERE (adress LIKE '$adress' AND dom LIKE '$dom'".($korp!="" ? " AND korp LIKE '$korp'" : "")." ) LIMIT 1)
UNION ALL 
(SELECT url FROM `table` WHERE (adress LIKE '$adress' AND dom LIKE '$dom'".($korp!="" ? " AND korp LIKE '$korp'" : "")." ) LIMIT 1)
";
...
Рейтинг: 0 / 0
php и MySQL
    #37938329
Програмёр1. на сервере путь файла обычно: /home/user/domen/www/относительный путь. Могу предположить, что в базу записывается именно относительный путь к файлу, который благополучно не находится (пхп файл просто не видит) если написать echo $provider['url'] что выдаст?

Нет, все нормально, все заработало. Магия какая то, одно и тоже вводишь, и тут те раз все загрузилось :)

А если таких url-ов будет несколько, то нужно в цикл писать, чтобы он каждый так включил?

Спасибо большое за помощь, очень помог...

И да, нужно много читать, очень много
...
Рейтинг: 0 / 0
php и MySQL
    #37938343
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минин Игорь,

что значит "таких url-ов будет несколько"? Несколько в одной строке таблицы (то есть у каждого провайдера по 2-3 урла), или несколько в выборке (то есть найдёт несколько провайдеров)?
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 2 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php и MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]