Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Организовать сайт знакомств - поиск по файлам
 
 автор: Job   (29.05.2007 в 00:15)   письмо автору
 
 

Хочу сделать сайт знакомств... вот. Как организовать поиск? Может кто подскажет что куда заносить при регистрации?? :)

   
 
 автор: Бамси   (29.05.2007 в 00:18)   письмо автору
 
   для: Job   (29.05.2007 в 00:15)
 

В SQL базу?...
В каждый столбик свои данные, Рост, Вес, Возраст...

   
 
 автор: Job   (29.05.2007 в 01:20)   письмо автору
 
   для: Бамси   (29.05.2007 в 00:18)
 

Да, но потом как поиск сделать? Можно примеры? Если не сложно...

А если на файлах?

   
 
 автор: cheops   (29.05.2007 в 08:59)   письмо автору
 
   для: Job   (29.05.2007 в 01:20)
 

На файлах для поиска придётся проводить индексирование... Вот несколько тем, посвящённых поиску по файлам

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=981
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1273

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1593
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1701
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1815

PS Но лучше ориентируйтесь сразу на СУБД - быстрее и удобнее получится.

   
 
 автор: Trianon   (29.05.2007 в 09:57)   письмо автору
 
   для: Job   (29.05.2007 в 01:20)
 

>А если на файлах?
Реализовать на файлах такой проект - на два-три порядка более сложная задача.

   
 
 автор: Job   (29.05.2007 в 11:37)   письмо автору
 
   для: Trianon   (29.05.2007 в 09:57)
 

>Реализовать на файлах такой проект - на два-три порядка более сложная задача.

Значит я крутой? :)

Я вот что придумал, при регистрации всё распределяется по папкам

Если парень в папке boy создаётся папка с ориентацией (getero bi gay) в папке ориентации создаётся папка с годом рождения, в папке года рождения папка города. И только в эту папку заносится файл с именем пользователя...

И поиск тогда уже можно будет осуществлять...

Но в лакале то всё быстро работает, а вот на сервере..... не знаю как будет...

А можете показать как в MySQL Сделать? Я пока не брался за его изучение... :)

   
 
 автор: mefestofel   (29.05.2007 в 11:53)   письмо автору
 
   для: Job   (29.05.2007 в 11:37)
 

> Значит я крутой? :)
Выкидывайте код, мы оценим 'степень крутизны'...
:-)

> Если парень в папке boy создаётся папка с ориентацией (getero bi gay) в папке ориентации создаётся папка с годом рождения, в папке года рождения папка города. И только в эту папку заносится файл с именем пользователя...

Как в атомной физике:
....результат отличается от движения в потенциальной яме бесконечной глубины, где отрицательная энергия дискретных уровней неограниченно растёт по абсолютной величине. Различие обусловлено степенью крутизны потенциальной функции.

> И поиск тогда уже можно будет осуществлять...
И в SQL тоже...

> Но в лакале то всё быстро работает, а вот на сервере..... не знаю как будет...
Ход мыслей правильный

Думаю стоит забыть про файлы и взять учебник по MySQL, определенно поможет...

   
 
 автор: Job   (29.05.2007 в 12:03)   письмо автору
 
   для: mefestofel   (29.05.2007 в 11:53)
 

А почему в MySQL быстрее будет? Если поиск по файлам вот так можно будет сделать допустим выбираем пол если пол женский и ищут парня, ищем в папке boy getero допустим возраст от 20 до 26 лет значит поиск разветвляется на несколько папок, ну и наконец если город который нужен, тогда просто вывести все имена пользователей...

А в MySQL всё в одной таблице будет, там же поиск дольше будет, тем более если пользователей много.

>Думаю стоит забыть про файлы и взять учебник по MySQL, определенно поможет...

Да, но время поджимает, *Стоя на коленях* пожалуйста если не сложно выложите пример занесения в базу данных, я пойму... разберусь...

   
 
 автор: cheops   (29.05.2007 в 12:45)   письмо автору
 
   для: Job   (29.05.2007 в 12:03)
 

>А почему в MySQL быстрее будет?
Потому что MySQL тоже обращается к директориям и файлам, однако написана на C причём из кода выжали по скорости всё, что только можно. PHP - интерпретатор, даже если вы выжимаете всё, быстрее чем на C у вас не выйдет. Кроме того, часть данных MySQL хранит в оперативной памяти - на PHP у вас это просто не выйдет - будете каждый раз обращаться к медленным дискам. Они конечно тоже кэшируются, но учитывая объём директорий и данных - вероятно это не сильно будет помогать, так как данные из кэша будут быстро уходить.

>пожалуйста если не сложно выложите пример занесения в базу данных
Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=19122.

   
 
 автор: Киналь   (29.05.2007 в 12:42)   письмо автору
 
   для: Job   (29.05.2007 в 00:15)
 

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

   
 
 автор: Job   (29.05.2007 в 16:03)   письмо автору
 
   для: Киналь   (29.05.2007 в 12:42)
 

Так, немного разобрался...

вот так заносятся данные

"INSERT INTO member VALUES ('имя пользователя', 'пароль', 'e-mail', 'пол', 'ориентация', 'год рождения', 'Город');"
База данных Love

Как сделать поиск? :)

И ещё сразу вопрос. Допустим если пользователь хочет изменить E-mail как это можно устроить?

   
 
 автор: bronenos   (29.05.2007 в 16:16)   письмо автору
 
   для: Job   (29.05.2007 в 16:03)
 

update users set email='new@email' where id='id of user'

   
 
 автор: Job   (29.05.2007 в 18:28)   письмо автору
 
   для: bronenos   (29.05.2007 в 16:16)
 

Ну с этим вроде всё понятно... а поиск? Как поиск? :)

   
 
 автор: Киналь   (29.05.2007 в 22:11)   письмо автору
 
   для: Job   (29.05.2007 в 18:28)
 

Самый простой - это с помощью слова like:


$search = "sexy";

$q = mysql_query("SELECT * FROM uses WHERE nick LIKE '$search*'");
// найдет sexy, sexy_girl и т.д.


Можно (а может, и нужно) устроить полнотекстовый поиск, позволяющий использовать регулярные выражения, короткие слова и прочие навороты. Если вам навороты не нужны, то LIKE вполне хватит.

   
 
 автор: Unkind   (29.05.2007 в 22:31)   письмо автору
 
   для: Киналь   (29.05.2007 в 22:11)
 

В LIKE используется не "*", а "%".

   
 
 автор: Job   (02.06.2007 в 15:03)   письмо автору
 
   для: Unkind   (29.05.2007 в 22:31)
 

А как результаты вывести?

Делаю так


<?
require_once("config.php"); 
$search "Job"

$query = ("SELECT * FROM member WHERE name LIKE '$search%'"); 
// member это название таблицы а  name поле где искать да?
 
if(!mysql_query($query)) exit(mysql_error()); 
     else echo 
"<center>Успешный запрос<br></center>";
?>


ничего не происходит :(

   
 
 автор: Unkind   (02.06.2007 в 16:18)   письмо автору
 
   для: Job   (02.06.2007 в 15:03)
 


<?php
require_once("config.php");  
$search "Job";  

$query = ("SELECT * FROM member WHERE name LIKE '$search%'");  
// member это название таблицы а  name поле где искать да? 
  
if(!($sql mysql_query($query))) exit(mysql_error());  
     else echo 
"<center>Успешный запрос<br></center>";

while(
$member mysql_fetch_assoc($sql))
{
echo(
$member["name"] . "<br />\r\n");
}
?>

   
 
 автор: Job   (02.06.2007 в 19:30)   письмо автору
 
   для: Unkind   (02.06.2007 в 16:18)
 

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

   
 
 автор: Job   (02.06.2007 в 22:48)   письмо автору
 
   для: Job   (02.06.2007 в 19:30)
 

Допучтим ищут имя пользователя Job и e-mail job@vob.ru и чтобы вывелись результаты только соответсвующие запросу....

   
 
 автор: Unkind   (02.06.2007 в 23:08)   письмо автору
 
   для: Job   (02.06.2007 в 22:48)
 


SELECT * FROM `tbl` WHERE `name` = 'Job' AND `email` = 'job@vob.ru';

Если нужно - замените "=" на "LIKE".

   
 
 автор: Job   (03.06.2007 в 14:18)   письмо автору
 
   для: Unkind   (02.06.2007 в 23:08)
 

Отлично! Спасибо!

А как сделать поиск допучтим от 19 до 35 лет?

вот такой запрос:
SELECT * FROM `member` WHERE `pol` = '$pol' AND `orient` = '$orient' AND `god` = '$god'; 

   
 
 автор: sms-send   (03.06.2007 в 15:31)   письмо автору
 
   для: Job   (03.06.2007 в 14:18)
 

SELECT * FROM `member` WHERE `pol` = '$pol' AND `orient` = '$orient' AND `god`>=1972 AND `god`<=1988;

   
 
 автор: Job   (03.06.2007 в 19:53)   письмо автору
 
   для: Job   (29.05.2007 в 00:15)
 

Спасибо всем огромное, вы очень помогли!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования