Спустя 3 минуты, 35 секунд (5.01.2011 - 16:51) inpost написал(а):
Гугл выбрал GET. =) И я тебе советую =)
Спустя 57 секунд (5.01.2011 - 16:51) Invis1ble написал(а):
Bossmen
Я где-то читал, что предпочтительней гет, т.к. можно кинуть ссылку другу например на результаты поиска...
Я где-то читал, что предпочтительней гет, т.к. можно кинуть ссылку другу например на результаты поиска...
Спустя 48 секунд (5.01.2011 - 16:52) amazing написал(а):
GET вполне хорошо справляется с поиском.
Спустя 1 минута, 16 секунд (5.01.2011 - 16:54) Bossmen написал(а):
А пример сможете показать на php коде, то через post передаю таблице запрос а как через GET ??
вот форма
вот форма
<form method="post" action="controler.php">
Имя<br>
<input type="text" name="name_actors" value="<?php echo $_POST['name_actors'] ?>"><br>
Дата рождения<br>
<select name="day">
<option value="non">-День-</option>
<?php
$day = $_POST['day'];
for($i = 1; $i <= 31; $i++)
{
echo '<option value="'.$i.'" '.($day == $i?'selected="selected"':' ').'>'.$i.'</option>';
}
?>
</select>
<select name="month">
<option value="non">-Месяц-</option>
<option value="01">Января</option>
<option value="02">Февраля</option>
<option value="03">Марта</option>
<option value="04">Апреля</option>
<option value="05">Мая</option>
<option value="06">Июня</option>
<option value="07">Июля</option>
<option value="08">Августа</option>
<option value="09">Сентября</option>
<option value="10">Октября</option>
<option value="11">Ноября</option>
<option value="12">Декабря</option>
</select>
<select name="year">
<option value="non">-Год-</option>
<?php
$year = $_POST['year'];
for($i = date('Y'); $i >= 1933; $i--)
{
echo '<option value="'.$i.'" '.($year == $i?'selected="selected"':' ').'>'.$i.'</option>';
}
?>
</select>
<br>
<input name="avatar" type="submit" value="отправить">
</form>
а а вот код
function people ($name_actors,$year)
{
$query = "SELECT * FROM tabl_people WHERE rus_name = '$name_actors' or orig_name = '$name_actors' or year = '$year' ";
$result = mysql_query($query);
while($myrow = mysql_fetch_assoc($result))
{
include './tabl.tpl';
}
}
Спустя 4 минуты, 36 секунд (5.01.2011 - 16:58) inpost написал(а):
method="post" меняешь на method="GET", далее работаешь уже с $_GET, вместо $_POST. И, я надеюсь, ты не забываешь инициализировать переменные?! ($id = $_GET['id']), если забываешь, посмотри мою последнюю подпись.
Спустя 4 минуты, 15 секунд (5.01.2011 - 17:02) Bossmen написал(а):
А как из гет передавать, с помощью ссылки ??
получишь запрос и потом передать в адресную строку а потом выводить из таблицы?
получишь запрос и потом передать в адресную строку а потом выводить из таблицы?
Спустя 1 минута, 12 секунд (5.01.2011 - 17:04) inpost написал(а):
Форма, нажимаешь SUBMIT!
Спустя 2 минуты, 51 секунда (5.01.2011 - 17:06) Bossmen написал(а):
все понял))
Спустя 1 минута, 41 секунда (5.01.2011 - 17:08) Bossmen написал(а):
extract ($_GET);
а так можно?
а так можно?
Спустя 59 минут, 44 секунды (5.01.2011 - 18:08) Bossmen написал(а):
???
Спустя 5 минут, 18 секунд (5.01.2011 - 18:13) Зарегестрирований написал(а):
Нет
У тебя есть ссыль
../index.php?search=imuseget
if (isset ($_GET['search']) && $_GET['search'] = "imuseget")
{echo "All good.Can Move!";}
У тебя есть ссыль
../index.php?search=imuseget
if (isset ($_GET['search']) && $_GET['search'] = "imuseget")
{echo "All good.Can Move!";}
Спустя 35 минут, 49 секунд (5.01.2011 - 18:49) inpost написал(а):
Зарегестрирований
Сравнивание равенства через == пробела, или ===, а не одно.
Сравнивание равенства через == пробела, или ===, а не одно.
Спустя 19 минут, 15 секунд (5.01.2011 - 19:08) Зарегестрирований написал(а):
Да точно я быстро ляпал по клавиатуре и один символ вылетел с текста
Кстате давно хотел спросить какая разница между == и === ?
-----------------
И вот мой код
if (isset ($_GET['id']))
{
$idcat = $_GET['id'];
там все работает ТОЛЬКО при одном = при двух выводится ошибка
Это по томучто я приравниваю одну переменную к другой а не проверяю (равно ли) так ведь?
Кстате давно хотел спросить какая разница между == и === ?
-----------------
И вот мой код
if (isset ($_GET['id']))
{
$idcat = $_GET['id'];
там все работает ТОЛЬКО при одном = при двух выводится ошибка
Это по томучто я приравниваю одну переменную к другой а не проверяю (равно ли) так ведь?
Спустя 15 минут, 18 секунд (5.01.2011 - 19:24) inpost написал(а):
Ага.
== - внешнее сравнение: $a = 5; $b = '5'; Они равны, так как значения 5 у обоих.
=== - внутреннее сравнение, они будет не равны, так как в первом - это числовое значение, а во втором - это уже текстовое значение.
== - внешнее сравнение: $a = 5; $b = '5'; Они равны, так как значения 5 у обоих.
=== - внутреннее сравнение, они будет не равны, так как в первом - это числовое значение, а во втором - это уже текстовое значение.
Спустя 1 минута, 5 секунд (5.01.2011 - 19:25) Игорь_Vasinsky написал(а):
= - это равенство, как могут 2 строки ровняться друг другу???????
== и === - идентичность.
вот поэтому.
Сначало бы не плохо с логикой php ознакомиться - она в самом начале мнуала.
Торопиться в этом деле нельзя. что то пропустил и как итог - тупик.
== и === - идентичность.
вот поэтому.
Сначало бы не плохо с логикой php ознакомиться - она в самом начале мнуала.
Торопиться в этом деле нельзя. что то пропустил и как итог - тупик.
Спустя 14 минут, 16 секунд (5.01.2011 - 19:39) Invis1ble написал(а):
Зарегестрирований
= - оператор присваивания
== - оператор сравнения (без учета типов)
=== - оператор эквивалентности (с учетом типов)
= - оператор присваивания
== - оператор сравнения (без учета типов)
=== - оператор эквивалентности (с учетом типов)
Спустя 2 минуты, 35 секунд (5.01.2011 - 19:41) Игорь_Vasinsky написал(а):
точнее не скажешь....
тока если про типы расписть ещёб.........
тока если про типы расписть ещёб.........
Спустя 3 минуты, 51 секунда (5.01.2011 - 19:45) GreatMax написал(а):
Цитата (Bossmen @ 5.01.2011 - 13:47) |
Get или POST что выбрать для поиска по сайту какой метод лучше ? |
Конечно GET, но его нужно хорошо фильтровать. Вырезать все символы кроме букв и цифр.
Спустя 3 минуты, 33 секунды (5.01.2011 - 19:49) Invis1ble написал(а):
Игорь_Vasinsky
типы - boolean, integer, float, null, string, array, object, resource.. Вроде все... почитай литературу
типы - boolean, integer, float, null, string, array, object, resource.. Вроде все... почитай литературу
Спустя 1 минута, 31 секунда (5.01.2011 - 19:50) Bossmen написал(а):
а как вырезать из get не нужные значения допустим
http://sm/controler.php?name_actors=&day=n...%E0%E2%E8%F2%FC
мне нужно убрать из адресной строки year=0 есле она равна нулю?
http://sm/controler.php?name_actors=&day=n...%E0%E2%E8%F2%FC
мне нужно убрать из адресной строки year=0 есле она равна нулю?
Спустя 59 минут, 27 секунд (5.01.2011 - 20:50) Игорь_Vasinsky написал(а):
Цитата |
типы - boolean, integer, float, null, string, array, object, resource.. Вроде все... почитай литературу |
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
да я блин читал и читаю... эт не для меня.
Цитата |
а как вырезать из get не нужные значения |
первый GET в адресной строке идёт после "?", остальные разделяются "&"
например:
http://www.google.ru/result.php?word=nude&name=ким&sekname=бесенджер
как видно:
$_GET['word'] = "nude";
$_GET['name'] = "ким";
$_GET['sekname'] = "бесенджер";
а это "...%E0%E2%E8%F2%FC"
Функция urldecode — Функция декодирует строку с URL, закодированную в безопасное представление
после обработки строки данной функцией вся кирилица преврещаеться в такую ерезь.
Функция urlencode - возвращает строку, в которой все не алфавитно-числовые символы (кроме -_.) заменены на знак процентов (%) с последующими двумя 16-ричными цифрами и пробелами, кодированными как знаки плюс (+). Она кодируется тем же способом, что и post данные WWW-формы, то есть как в типе носителя application/x-www-form-urlencoded.
Спустя 4 минуты, 14 секунд (5.01.2011 - 20:54) Invis1ble написал(а):
Игорь_Vasinsky
Цитата |
эт не для меня |
аа, я думал ты для себя спрашивал... теперь понял, что ты хотел сказать ))
Спустя 47 минут, 20 секунд (5.01.2011 - 21:41) twin написал(а):
GreatMax
Цитата |
Конечно GET, но его нужно хорошо фильтровать. Вырезать все символы кроме букв и цифр. |
Что за хрень? С какого перепуга? А как я буду искать китайский текст?
Спустя 1 час, 34 минуты, 52 секунды (5.01.2011 - 23:16) Игорь_Vasinsky написал(а):
он просто торопился.. просто нужно обезапаситься.
Спустя 19 часов, 5 минут, 29 секунд (6.01.2011 - 18:22) Bossmen написал(а):
Я так не понял как удалить))
Спустя 15 минут, 42 секунды (6.01.2011 - 18:37) Invis1ble написал(а):
Bossmen
А зачем удалять? year=0 - это будет одним из параметров поиска
А зачем удалять? year=0 - это будет одним из параметров поиска
Спустя 1 час, 22 минуты, 25 секунд (6.01.2011 - 20:00) Bossmen написал(а):
$query = "SELECT * FROM tabl_people WHERE rus_name = '$name_actors' or orig_name = '$name_actors' and year = '$year' ";
$result = mysql_query($query);
как правильно построить поиск, допустим я извлекаю из get значение,
а оно помешается в запрос , а если год пустой то в запрос все равно отправляется и не чего не выводит потому что в запрос помещается пустое значение))
Спустя 13 минут, 56 секунд (6.01.2011 - 20:14) Invis1ble написал(а):
Bossmen
значит нужно запрос по другому составить. Примерно так:
значит нужно запрос по другому составить. Примерно так:
$query = "SELECT * FROM tabl_people WHERE rus_name = '" . $name_actors . "' or orig_name = '" . $name_actors . "'";
if ($year != 0)
$query .= " and year = '" . $year . "'";
Спустя 1 час, 5 минут, 43 секунды (6.01.2011 - 21:20) Bossmen написал(а):
А если надо так же на дату и месяц ?
Спустя 5 минут, 31 секунда (6.01.2011 - 21:25) inpost написал(а):
Bossmen
вместо year -> date
вместо year -> date
Спустя 7 минут, 29 секунд (6.01.2011 - 21:33) Bossmen написал(а):
$query = "SELECT * FROM tabl_people WHERE rus_name = '" . $name_actors . "' or orig_name = '" . $name_actors . "'";
if ($year != 0)
$query .= " and year = '" . $year . "'";
if ($day != 0)
$query .= " and day = '" . $day . "'";
и так далее ?
Спустя 5 минут, 45 секунд (6.01.2011 - 21:38) Invis1ble написал(а):
Bossmen
можно и так, а можно красивее:
можно и так, а можно красивее:
$query = "SELECT * FROM tabl_people WHERE rus_name = '" . $name_actors . "' or orig_name = '" . $name_actors . "'";
$date = array('year' => $year, 'month' => $month, 'day' => $day);
foreach ($date as $field => $value)
if ($value != 0)
$query .= " and " . $field . " = '" . $value . "'";
Спустя 1 минута, 22 секунды (6.01.2011 - 21:40) Bossmen написал(а):
А если у меня десять значений??
Спустя 1 минута, 47 секунд (6.01.2011 - 21:41) Bossmen написал(а):
Вы наверно не поняли у меня выводяться в список люди
и мне надо сделать сортировку
как в контакте сортировка людей http://vkontakte.ru/gsearch.php?from=people&basic=1&c[name]=1&sort=-1
если ты не выбираешь пораметр сортировки в адресной строке не появляеться
и мне надо сделать сортировку
как в контакте сортировка людей http://vkontakte.ru/gsearch.php?from=people&basic=1&c[name]=1&sort=-1
если ты не выбираешь пораметр сортировки в адресной строке не появляеться
Спустя 26 минут, 45 секунд (6.01.2011 - 22:08) Invis1ble написал(а):
Bossmen
причем тут вконтакте? ) чем тебе не подходит вариант, описанный мной?
причем тут вконтакте? ) чем тебе не подходит вариант, описанный мной?
Спустя 4 минуты, 26 секунд (6.01.2011 - 22:13) Игорь_Vasinsky написал(а):
На самом деле... чё ты путаешь нас... сам же спрашивал что для поиска использовать.
И чё тя адресная срока пугает.. пускай видят что ты путёвый программист и знаешь что такое GET и динамические страницы.
только когда ты из GET вытягиваешь year, он не равен year, а равен $_GET['year'].
тоесть ты можешь задать переменную $year, которая равна $_GET['year'].
тока обезопась GET, т.к. там год у тя - значит тока цифры, значит сделай проверку на то что в этой переменной могут быть тока цифры.
И чё тя адресная срока пугает.. пускай видят что ты путёвый программист и знаешь что такое GET и динамические страницы.
только когда ты из GET вытягиваешь year, он не равен year, а равен $_GET['year'].
тоесть ты можешь задать переменную $year, которая равна $_GET['year'].
тока обезопась GET, т.к. там год у тя - значит тока цифры, значит сделай проверку на то что в этой переменной могут быть тока цифры.
Спустя 1 минута, 28 секунд (6.01.2011 - 22:14) Игорь_Vasinsky написал(а):
Цитата |
значит сделай проверку на то что в этой переменной могут быть тока цифры |
попрвка:
не могут быть цифры, а является целым числом. во как.
Спустя 8 минут, 34 секунды (6.01.2011 - 22:23) Invis1ble написал(а):
Bossmen
там в вконтакте это через ajax вроде реализовано... Делай как я тебе показал и не морочь себе голову
там в вконтакте это через ajax вроде реализовано... Делай как я тебе показал и не морочь себе голову
Спустя 1 час, 11 минут, 56 секунд (6.01.2011 - 23:35) inpost написал(а):
Так, в познавательных целях: http://www.perkoka.ru/article/46/795.html
Спустя 8 минут, 46 секунд (6.01.2011 - 23:43) Игорь_Vasinsky написал(а):
гы............ внатуре.............
Спустя 5 минут, 40 секунд (6.01.2011 - 23:49) Invis1ble написал(а):
inpost
не, он другое вроде имеет ввиду... Там такая фишка, типа найти людей по определенным критериям - и список критериев... Юзер выбирает (или не выбирает) кликами определенные критерии и на лету формируется запрос в адресной строке, после которого выводится список людей с указанными параметрами (все это без перезагрузки страницы, по всей видимости ajax)
не, он другое вроде имеет ввиду... Там такая фишка, типа найти людей по определенным критериям - и список критериев... Юзер выбирает (или не выбирает) кликами определенные критерии и на лету формируется запрос в адресной строке, после которого выводится список людей с указанными параметрами (все это без перезагрузки страницы, по всей видимости ajax)
Спустя 7 минут, 35 секунд (6.01.2011 - 23:57) Игорь_Vasinsky написал(а):
да эт понятно..... я просто не разу не видел за 10 лет............
Спустя 6 минут (7.01.2011 - 00:03) inpost написал(а):
Invis1ble
Да я понял, просто мало ли, вдруг пригодится и он на всё плюнет?! =)
Да я понял, просто мало ли, вдруг пригодится и он на всё плюнет?! =)
Спустя 38 минут, 4 секунды (7.01.2011 - 00:41) Игорь_Vasinsky написал(а):
ещё как пригодиться.. сортировка такая. спасиб...
Спустя 7 часов, 8 минут, 7 секунд (7.01.2011 - 07:49) Bossmen написал(а):
Спасибо всем))
Спустя 10 часов, 5 минут, 59 секунд (7.01.2011 - 17:55) Bossmen написал(а):
Допустим у меня отправляеться запрос год вида 2011, а в таблице у меня лежит 12.04.2011, мне нужно вывести всех из таблицы где год равен 2011 ??
как это можно реализовать
как это можно реализовать
Спустя 8 минут, 37 секунд (7.01.2011 - 18:03) Invis1ble написал(а):
Bossmen
Я ведь показал тебе уже реализацию... В чем проблема? Не работает?
Я ведь показал тебе уже реализацию... В чем проблема? Не работает?
Спустя 5 минут, 16 секунд (7.01.2011 - 18:09) Bossmen написал(а):
Да работает))отлично допустим юсер указывает парметр 2004 год и из таблицы у меня не выводит потому что в таблице дата рождения храниться в формате 12.03.2011
а мне надо вывести всех у кого год рождения равен 2011 , а не выводит потому что не равна )) допистим 2011 а сравнивает с 12.04.2005))
а мне надо вывести всех у кого год рождения равен 2011 , а не выводит потому что не равна )) допистим 2011 а сравнивает с 12.04.2005))
Спустя 16 минут, 30 секунд (7.01.2011 - 18:25) Invis1ble написал(а):
Bossmen
ну не знаю... наверно придется переделывать структуру таблицы (3 отдельных поля - year, month и day)... хотя, наверное есть более грамотное решение =)
ну не знаю... наверно придется переделывать структуру таблицы (3 отдельных поля - year, month и day)... хотя, наверное есть более грамотное решение =)
Спустя 1 минута, 4 секунды (7.01.2011 - 18:26) Invis1ble написал(а):
Bossmen
я просто в SQL не особо силен, возможно есть функция, которая парсит на лету формат DATE..
я просто в SQL не особо силен, возможно есть функция, которая парсит на лету формат DATE..
Спустя 4 минуты, 55 секунд (7.01.2011 - 18:31) Игорь_Vasinsky написал(а):
SELECT * FROM `table` WHERE `year` LIKE '%2011%'
и буд он у тя искать строки в которых поля year похожи на 2011...
Спустя 2 минуты, 34 секунды (7.01.2011 - 18:34) Invis1ble написал(а):
Игорь_Vasinsky
с годом такое прокатит, но с месяцем и днем - нет, точнее могут быть ошибки.
с годом такое прокатит, но с месяцем и днем - нет, точнее могут быть ошибки.
Спустя 6 минут, 32 секунды (7.01.2011 - 18:40) Игорь_Vasinsky написал(а):
а зачем делать запрос на 12 число каждого мсяцы - когда нужно выводить на 12 число определённого есяца и искать совпадения, напримае
на 12 декабря
а если нужен год - то он же обрамлен точками 12.03.2011
если уж он принципиально такой формат выбрал - то тока такой вариант.
на 12 декабря
SELECT * FROM `table` WHERE `day` LIKE '%12.12%'
а если нужен год - то он же обрамлен точками 12.03.2011
SELECT * FROM `table` WHERE `mounth` LIKE '%.03.%'
если уж он принципиально такой формат выбрал - то тока такой вариант.
Спустя 10 минут, 53 секунды (7.01.2011 - 18:51) Invis1ble написал(а):
Игорь_Vasinsky
насчет точек - да, так можно сделать, я что-то не сразу сообразил )
насчет точек - да, так можно сделать, я что-то не сразу сообразил )
Спустя 5 минут, 27 секунд (7.01.2011 - 18:57) Игорь_Vasinsky написал(а):
посмотрм что автор суажет...
Спустя 15 минут, 15 секунд (7.01.2011 - 19:12) Invis1ble написал(а):
Игорь_Vasinsky
Все равно, по-ходу затык получается =)
Представь ситуацию: нужно найти даты с известным числом и годом (месяц не известен). Как выкрутишься?
Все равно, по-ходу затык получается =)
Представь ситуацию: нужно найти даты с известным числом и годом (месяц не известен). Как выкрутишься?
Спустя 8 минут, 2 секунды (7.01.2011 - 19:20) jetistyum написал(а):
Хранить в отдельных полях - совсем не плохая идея, ведь поиск Like будет длиться в любом случае дольше, а храня дату по разным полям всего лишь нужно сравнивать int-ы, это будет происходить гораздо быстрее..
Спустя 5 минут, 25 секунд (7.01.2011 - 19:25) Invis1ble написал(а):
jetistyum
вот и я о том же )
вот и я о том же )
Спустя 8 минут, 25 секунд (7.01.2011 - 19:34) Игорь_Vasinsky написал(а):
Цитата |
Представь ситуацию: нужно найти даты с известным числом и годом (месяц не известен). Как выкрутишься? |
это как выходит ?
я был бухой, но помню что число было 12е, а было это году в 1981 ?
вроде както глупо.
я б сделал отдельно - ноавтор темы работает с таким вариантом - от этого я и пляшу.
Спустя 11 минут, 53 секунды (7.01.2011 - 19:46) Invis1ble написал(а):
Игорь_Vasinsky
Цитата |
я был бухой, но помню что число было 12е, а было это году в 1981 |
примерно так =) Нужно учитывать все возможные варианты.
Цитата |
автор темы работает с таким вариантом |
в том то и дело, что в данном случае получается, что это не оптимальный вариант, поэтому я и предлагаю ему изменить структуру таблицы
Спустя 2 минуты, 34 секунды (7.01.2011 - 19:48) Игорь_Vasinsky написал(а):
пускай он решает. мне пофиг. мы тут описали возможные варианты.
Спустя 53 секунды (7.01.2011 - 19:49) Игорь_Vasinsky написал(а):
я вообще уже забыл про что он(помню тока что про даты) - иду тупо по посту и пишу
Спустя 15 минут, 17 секунд (7.01.2011 - 20:04) Bossmen написал(а):
Значит создать отдельные поля для месяца дня и года,
а я думаю другое решение есть))
Выход всегда есть))
то не охота таблицу лишними ячейками засорять
а я думаю другое решение есть))
Выход всегда есть))
то не охота таблицу лишними ячейками засорять
Спустя 16 минут, 37 секунд (7.01.2011 - 20:21) Invis1ble написал(а):
Bossmen
Цитата |
а я думаю другое решение есть)) Выход всегда есть)) |
есть конечно, например - найти, есть ли штатная ф-ция SQL для парсинга значений из полей типа DATE, а если нет - написать свою. Но, имхо, это не оптимальный вариант, т.к. он получится медлительный. Вобщем, решай сам. Если найдешь другое решение - отпишись )
Спустя 4 минуты, 27 секунд (7.01.2011 - 20:25) Игорь_Vasinsky написал(а):
бери значение даты: 12.03.2010 - >считывай и загоняй в массив - разделитель блин . (точка)
получаешь массив с 3мя значениями - (как бы имитируешь 3 поля) - и проверяй по массиву что те надо.
парсер))))))))))))))))) нах он нужен. МАССИВ - форево
получаешь массив с 3мя значениями - (как бы имитируешь 3 поля) - и проверяй по массиву что те надо.
парсер))))))))))))))))) нах он нужен. МАССИВ - форево
Спустя 4 минуты, 50 секунд (7.01.2011 - 20:30) Игорь_Vasinsky написал(а):
explode и implode - в помощь ! почитай про них
Спустя 1 минута, 51 секунда (7.01.2011 - 20:32) Invis1ble написал(а):
Игорь_Vasinsky
средствами php? И сколько это времени займет такая движуха, ты представляешь? Выбрать все значения из БД и пройтись по всем.... это жесть )
средствами php? И сколько это времени займет такая движуха, ты представляешь? Выбрать все значения из БД и пройтись по всем.... это жесть )
Спустя 3 минуты, 55 секунд (7.01.2011 - 20:36) Bossmen написал(а):
А вы бы как сделали создали 3 отдельных поля или решали с помощью различных функций??
Спустя 5 минут, 45 секунд (7.01.2011 - 20:42) Игорь_Vasinsky написал(а):
время ??? что такое время - кода нужен результ.
а теперь по существу - чт мы делаем ?
в БД бращаться нужно хоть как ? правльно ? - а работа с массивами начинается после работы с БД.
время..... да 3 секунды.
а теперь по существу - чт мы делаем ?
в БД бращаться нужно хоть как ? правльно ? - а работа с массивами начинается после работы с БД.
время..... да 3 секунды.
Спустя 3 минуты, 34 секунды (7.01.2011 - 20:45) Invis1ble написал(а):
Bossmen
я бы сделал в 3 поля
Игорь_Vasinsky
я бы сделал в 3 поля
Игорь_Vasinsky
Цитата |
время..... да 3 секунды |
может быть, но представь, если несколько юзеров сразу будет искать.
Цитата |
в БД бращаться нужно хоть как ? правльно ? - а работа с массивами начинается после работы с БД |
видимо ты плохо представляешь, как работает мускул... ведь он работает на более низком уровне, нежеле пых - как следствие, более высокая скорость обработки
Спустя 2 минуты, 2 секунды (7.01.2011 - 20:47) Bossmen написал(а):
А если такой вариант?
из базы выводим все id пользователей оттуда выводим дата, потом из запроса get формируем шаблон а потом сравниваем,
и те id которые совпали подставляем в основной запрос
из базы выводим все id пользователей оттуда выводим дата, потом из запроса get формируем шаблон а потом сравниваем,
и те id которые совпали подставляем в основной запрос
Спустя 3 минуты, 43 секунды (7.01.2011 - 20:51) Invis1ble написал(а):
Bossmen
примерно об этом говорит Игорь. Я бы не стал так делать. Решай сам
примерно об этом говорит Игорь. Я бы не стал так делать. Решай сам
Спустя 58 секунд (7.01.2011 - 20:52) Bossmen написал(а):
А в чем причина Invis1ble ?
Спустя 2 минуты, 8 секунд (7.01.2011 - 20:54) Invis1ble написал(а):
Bossmen
я уже написал причину - скорость обработки. Смотри мои предыдущие посты.
Вообще нормальные программисты сначала все тщательно продумывают, потом проектируют БД под нужные задачи. При таком подходе подобных проблем не должно возникать.
я уже написал причину - скорость обработки. Смотри мои предыдущие посты.
Вообще нормальные программисты сначала все тщательно продумывают, потом проектируют БД под нужные задачи. При таком подходе подобных проблем не должно возникать.
Спустя 1 минута, 56 секунд (7.01.2011 - 20:56) Bossmen написал(а):
Значит буду делать для каждой свою таблицу))для даты и для года и для месяца))
Спустя 4 минуты, 52 секунды (7.01.2011 - 21:01) Invis1ble написал(а):
Bossmen
Цитата |
Значит буду делать для каждой свою таблицу))для даты и для года и для месяца)) |


Ага, а лучше - 3 отдельных БД для каждой записи ))))))
Причем тут таблица? Я написал "3 отдельных поля", а не таблицы =)
Спустя 2 минуты, 35 секунд (7.01.2011 - 21:04) Bossmen написал(а):
Я ошибся))конечно поля
Спустя 3 минуты, 42 секунды (7.01.2011 - 21:07) Игорь_Vasinsky написал(а):
ты говоришь про нормальных или опытных ? нормальные - пишут работающий код.
блин - да хоть как запрос в бд и так и так - работа с массивами - начинается после запроса и без участия мускула - уже с полученными данными.
блин - да хоть как запрос в бд и так и так - работа с массивами - начинается после запроса и без участия мускула - уже с полученными данными.
Спустя 5 минут, 58 секунд (7.01.2011 - 21:13) Bossmen написал(а):
Я думаю что вариант Игорь_Vasinsky тоже норм, надо узнать у тех кто с этим уже работал))
Спустя 10 минут, 35 секунд (7.01.2011 - 21:24) Игорь_Vasinsky написал(а):
ну я работал - узнавай.
и не вешал мускул.
я вообще ниче не вешал, если не считать тот угар с бесконечным циклом года 2 назад...
и не вешал мускул.
я вообще ниче не вешал, если не считать тот угар с бесконечным циклом года 2 назад...
Спустя 2 минуты, 30 секунд (7.01.2011 - 21:26) Bossmen написал(а):
Игорь_Vasinsky ты говоришь что надо решить мою задачу твоим способои и все будет намэ))
А скинь скрипт как ты ее решил)
А скинь скрипт как ты ее решил)
Спустя 5 минут, 45 секунд (7.01.2011 - 21:32) Игорь_Vasinsky написал(а):
а ты что с массивами не работал ?
у меня вообще сайт с фильмами в разработке - тока там не дата, а атёры в одном поле.
так вот если я вывести список актёров (по алфавиту) (ссылочный) - то вытаскиваю всё поле - разбиваю в массив - составляю результат и делаю вывод.
при этом т.к. афавитный указатель по фамилиям - я ещё переворачиваю - имя с фамилией - ищю совпадения - нахожу - собираю - переставляю обратно - и вывжу.
и не кто не повис пока.
у меня вообще сайт с фильмами в разработке - тока там не дата, а атёры в одном поле.
так вот если я вывести список актёров (по алфавиту) (ссылочный) - то вытаскиваю всё поле - разбиваю в массив - составляю результат и делаю вывод.
при этом т.к. афавитный указатель по фамилиям - я ещё переворачиваю - имя с фамилией - ищю совпадения - нахожу - собираю - переставляю обратно - и вывжу.
и не кто не повис пока.
Спустя 5 минут, 55 секунд (7.01.2011 - 21:38) Invis1ble написал(а):
Игорь_Vasinsky
Цитата |
блин - да хоть как запрос в бд и так и так - работа с массивами - начинается после запроса и без участия мускула - уже с полученными данными |
ну почему же...
По твоему алгоритму (если я правильно тебя понял):
1. делаем запрос в БД на выборку ВСЕХ данных (sql)
2. получаем данные, загоняем в двухмерный массив (php)
3. проходимся по массиву (по первому измерению), берем из каждого элемента (массива) дату, разбиваем на составляющие (день, месяц, год), если удовлетворяет условиям - выводим результат (php)
мой алгоритм:
1. формируем запрос к БД (php)
2. делаем запрос на выборку данных, удовлетворяющих поставленным условиям (sql)
3. получаем данные, выводим их. (php)
так вот, 3-й шаг в твоем алгоритме будет выполняться бОльшую часть времени (т.к. реализация пыховая, а в моем случае этим будет заниматься мускул).
Спустя 2 минуты, 25 секунд (7.01.2011 - 21:40) Invis1ble написал(а):
Игорь_Vasinsky
Цитата |
и не кто не повис пока |
определяющее слово - пока )) до поры-до времени... будешь что-то монструозное делать с такой логикой - пиши пропало )
Спустя 7 минут, 11 секунд (7.01.2011 - 21:48) Игорь_Vasinsky написал(а):
да я понял твой алгаритм - я бы и сам так сделал - я же говорю я копаю в сторону автора, а мой алгоритм ты принял ошибочно.
1. делаем запрос в БД на выборкуВСЕХ в цикле - поочерёдно данных (sql) - и каждый раз формруем из поля в двухмерный массив
2. проходимся по массиву(по первому измерению)( я тока про 5е измерение смотрел), берем из каждого элемента (массива) дату, разбиваем на составляющие (день, месяц, год), - массив уже сформирован - мы просто ищем взависимости от запрса по нужным элементам массива (по индексам) - если есто день и год - то array[0] и array[2], если это месяц и год - то array[1] и array[2] и т.д.
3.выводим результат (php)
1. делаем запрос в БД на выборку
2. проходимся по массиву
3.выводим результат (php)
Цитата |
определяющее слово - пока )) до |
проблемы стоит решать по мере возникновения - все форс мажоры не подсчтать.
Спустя 2 минуты, 41 секунда (7.01.2011 - 21:50) Игорь_Vasinsky написал(а):
т.е. если в строке есть ячейка с датой 12.03.2009 - >
$date_table = "12.03.2009";
$date = explode(".", $date_table);
$date[0] = "12";
$date[1] = "03";
$date[2] = "2009";
Спустя 12 минут, 10 секунд (7.01.2011 - 22:02) Invis1ble написал(а):
Вот я щас заморочился, и вот чо нашел (составил примерный запрос):
из чего следует, что штатных функций SQL полно, нужно только поискать.
Все должно работать, без всяких танцев =)
$query = "SELECT * FROM `table`
WHERE
DAYOFMONTH(`date`) = '" . $day . "' OR
MONTH(`date`) = '" . $month . "' OR
YEAR(`date`) = '" . $year . "'";
из чего следует, что штатных функций SQL полно, нужно только поискать.
Все должно работать, без всяких танцев =)
Спустя 4 минуты, 9 секунд (7.01.2011 - 22:07) Игорь_Vasinsky написал(а):
молодец.
Спустя 30 секунд (7.01.2011 - 22:07) Bossmen написал(а):
$query = "SELECT * FROM tabl_people WHERE rus_name = '$name_people'";
$date = array('year' => $year);
foreach ($date as $field => $value)
if ($value != 0)
$query .= " and " . $field . " = '" . $value . "'";
а как можно в цикле использовать
Спустя 6 минут, 53 секунды (7.01.2011 - 22:14) Invis1ble написал(а):
$query = "SELECT * FROM `tabl_people` WHERE `rus_name` = '" . $name_people . "'";
if ($day != 0)
$query .= " AND DAYOFMONTH(`date`) = '" . $day . "'";
и т.д.
Спустя 10 минут, 40 секунд (7.01.2011 - 22:25) Игорь_Vasinsky написал(а):
а где тут цикл?
Спустя 8 минут, 3 секунды (7.01.2011 - 22:33) Invis1ble написал(а):
Игорь_Vasinsky
a зачем?
a зачем?
Спустя 3 минуты, 27 секунд (7.01.2011 - 22:36) Invis1ble написал(а):
Игорь_Vasinsky
тот цикл писал я, примерно 20 постов назад =)
после этого выяснилось, что дата храниться в одном поле.. Теперь, когда я показал пример использования SQL-функций, цикл уже не нужен )
тот цикл писал я, примерно 20 постов назад =)
после этого выяснилось, что дата храниться в одном поле.. Теперь, когда я показал пример использования SQL-функций, цикл уже не нужен )
Спустя 1 минута, 29 секунд (7.01.2011 - 22:38) Игорь_Vasinsky написал(а):
лан. вникать не стану.
Спустя 13 минут, 41 секунда (7.01.2011 - 22:51) jetistyum написал(а):
и всетаки я настаиваю - хранить дату в разных полях выгоднее

Спустя 2 минуты, 16 секунд (7.01.2011 - 22:54) Игорь_Vasinsky написал(а):
я так наоборот терь этим пользоваться буду
$query = "SELECT * FROM `table` WHERE DAYOFMONTH(`date`) = '" . $day . "' OR MONTH(`date`) = '" . $month . "' OR YEAR(`date`) = '" . $year . "'";
Спустя 8 минут, 19 секунд (7.01.2011 - 23:02) Invis1ble написал(а):
jetistyum
поясни, с чем это связано. Это личное предпочтение, или есть объективные аргументы? Скорость обработки?
поясни, с чем это связано. Это личное предпочтение, или есть объективные аргументы? Скорость обработки?
Спустя 13 минут, 41 секунда (7.01.2011 - 23:16) jetistyum написал(а):
Конечно скорость обработки. давай попробуем разобраться как происходит поиск.
внутренний итератор проходит по каждой записи в базе данных и трижды запускает функцию работы с датой, к найденной строке, и результаты работы функции сравнивает с аргументом. в другом же случае ты просто сравниваешь два инта.
профит
внутренний итератор проходит по каждой записи в базе данных и трижды запускает функцию работы с датой, к найденной строке, и результаты работы функции сравнивает с аргументом. в другом же случае ты просто сравниваешь два инта.
профит

Спустя 8 минут, 41 секунда (7.01.2011 - 23:24) Игорь_Vasinsky написал(а):
в простоте синтаксиса и отсутствие необходимости использования дополнительных функций.
Спустя 1 минута, 20 секунд (7.01.2011 - 23:26) Invis1ble написал(а):
jetistyum
ну я в принципе так и понял, что это связано с дополнительной работой функций... Просто думал, что может есть еще какие-то причины
ну я в принципе так и понял, что это связано с дополнительной работой функций... Просто думал, что может есть еще какие-то причины
Спустя 12 часов, 42 минуты, 51 секунда (8.01.2011 - 12:08) Bossmen написал(а):
Я вот так сделал))
}
function people ($name_people,$year,$day,$month)
{
$query = "SELECT * FROM tabl_people WHERE 1 = '1'";
if ($year != 0)
$query .= " and YEAR(`birthday`) = '" . $year . "'";
if ($day != 0)
$query .= " and DAYOFMONTH(`birthday`) = '" . $day . "'";
if ($month != 0)
$query .= " and MONTH(`birthday`) = '" . $month . "'";
$result = mysql_query($query);
while($myrow = mysql_fetch_assoc($result))
{
include './tabl.tpl';
}
}
Спустя 14 минут, 39 секунд (8.01.2011 - 12:23) Dasha. написал(а):
по сабжу - если поиск идёт выборкой по 20+полям, то тут как не крути - пост. Иначе - гет.
Если гетом, то такую линку даже не дать другу (без обработки), ибо она будет на 8 строк.
Пример - поиск картинок в гугле. Выберите нужную и перейдёте на страницу де найдена эта картинка. И её выделят в рамочку - скопируйте адресс. Будете приятно удивленны.
К чему веду? Да так же будет выглядеть строка поиска при бОльшом кол-ве параметров.
Если гетом, то такую линку даже не дать другу (без обработки), ибо она будет на 8 строк.
Пример - поиск картинок в гугле. Выберите нужную и перейдёте на страницу де найдена эта картинка. И её выделят в рамочку - скопируйте адресс. Будете приятно удивленны.
К чему веду? Да так же будет выглядеть строка поиска при бОльшом кол-ве параметров.
Спустя 30 минут, 37 секунд (8.01.2011 - 12:54) Bossmen написал(а):
Она не будет очень длиной если будет подставляться имя актера, то в гет будет передаваться только id актера, а если допустим параметр дата не будет указана то в гет не будет отправляться))Вот только пока не пойму как))
Может перед передачей гет фильтр сделать))
Может перед передачей гет фильтр сделать))
Спустя 3 часа, 20 минут, 37 секунд (8.01.2011 - 16:14) jetistyum написал(а):
Цитата (Dasha. @ 8.01.2011 - 12:23) |
по сабжу - если поиск идёт выборкой по 20+полям, то тут как не крути - пост. Иначе - гет. Если гетом, то такую линку даже не дать другу (без обработки), ибо она будет на 8 строк. Пример - поиск картинок в гугле. Выберите нужную и перейдёте на страницу де найдена эта картинка. И её выделят в рамочку - скопируйте адресс. Будете приятно удивленны. К чему веду? Да так же будет выглядеть строка поиска при бОльшом кол-ве параметров. |
http://www.google.com.ua/imgres?imgurl=htt...0&tx=174&ty=100
вот тебе линка без обработки, пусть даже большая, что мешает тебе на нее нажать (скопировать)
если бы она была сделана постом, тебе бы было проще? я бы тебе вообще не смог ее дать. какая разница сколько в ней строчек, ты ее что, учить на память хочешь? Тебе не кажется что если даже гугл (хвала ему) делает ссылку гет-ом, то наверное там над этим думали, и думали не глупые люди

Спустя 4 часа, 35 минут, 18 секунд (8.01.2011 - 20:50) Bossmen написал(а):
выводит тогда когда в базе один сериал, а когда несколько пусто ))
надо что то сделать в строке
надо что то сделать в строке
$query .= " and id_people = '" . $myrow_distributiont['actors']. "'";
$query_distribution = "SELECT * FROM tabl_distribution WHERE ser = '$ser'";
$result_distributiont = mysql_query($query_distribution);
if($ser != 0)
while($myrow_distributiont = mysql_fetch_assoc($result_distributiont))
{
$query .= " and id_people = '" . $myrow_distributiont['actors']. "'";
}
Спустя 11 минут, 18 секунд (8.01.2011 - 21:01) Игорь_Vasinsky написал(а):
Цитата |
if($ser != 0) |
что за переменная $SER ????
тебе нужно подсчитать количество строк (сериалов) - и если их в бд больше 0 - то все на вывод
Спустя 6 минут, 39 секунд (8.01.2011 - 21:08) Invis1ble написал(а):
Bossmen
в той строке все нормально. наверно дальше налажал где-то..
в той строке все нормально. наверно дальше налажал где-то..
Спустя 1 минута, 3 секунды (8.01.2011 - 21:09) Invis1ble написал(а):
Bossmen
покажи, как ты полностью $query формируешь, иначе по тому куску кода сложно судить
покажи, как ты полностью $query формируешь, иначе по тому куску кода сложно судить
Спустя 20 минут, 38 секунд (8.01.2011 - 21:29) Bossmen написал(а):
<?php
function people ($name_people,$year,$day,$month, $ser)
{
$query = "SELECT * FROM tabl_people WHERE 1 = '1'";
if ($year != 0)
$query .= " and YEAR(`birthday`) = '" . $year . "'";
if ($day != 0)
$query .= " and DAYOFMONTH(`birthday`) = '" . $day . "'";
if ($month != 0)
$query .= " and MONTH(`birthday`) = '" . $month . "'";
$query_distribution = "SELECT * FROM tabl_distribution WHERE ser = '$ser'";
$result_distributiont = mysql_query($query_distribution);
if($ser != 0)
while($myrow_distributiont = mysql_fetch_assoc($result_distributiont))
{
$query .= " and id_people = '" . $myrow_distributiont['actors']. "'";
}
$result = mysql_query($query);
while($myrow = mysql_fetch_assoc($result))
{
include './tabl.tpl';
}
}
вот весь код
Спустя 32 минуты, 35 секунд (8.01.2011 - 22:02) Игорь_Vasinsky написал(а):
шо за услвие WHERE 1 = '1'";
Спустя 7 минут, 41 секунда (8.01.2011 - 22:09) Invis1ble написал(а):
Bossmen
поменяй в цикле в запросе and на or, или прочти про IN() в SQL...
Блин, ох и у томил меня же этот топик.....
Автор, не лезь в дебри!!!!!!!!!!! Начни с более простых вещей
поменяй в цикле в запросе and на or, или прочти про IN() в SQL...
Блин, ох и у томил меня же этот топик.....

Автор, не лезь в дебри!!!!!!!!!!! Начни с более простых вещей

Спустя 33 секунды (8.01.2011 - 22:10) jetistyum написал(а):
вероятно это первоначальное условие, шобы потом можно было шото к нему конкатенировать используя AND и шобы все это было потом корректно

Спустя 32 минуты, 29 секунд (8.01.2011 - 22:42) Bossmen написал(а):
jetistyum ты прав))
Спустя 11 минут, 14 секунд (8.01.2011 - 22:54) Dron19 написал(а):
Цитата (Зарегестрирований @ 5.01.2011 - 16:08) |
Да точно я быстро ляпал по клавиатуре и один символ вылетел с текста Кстате давно хотел спросить какая разница между == и === ? ----------------- И вот мой код if (isset ($_GET['id'])) { $idcat = $_GET['id']; там все работает ТОЛЬКО при одном = при двух выводится ошибка Это по томучто я приравниваю одну переменную к другой а не проверяю (равно ли) так ведь? |
== равно ли?
=== идентично ли?
Спустя 12 часов, 40 минут, 33 секунды (9.01.2011 - 11:34) Bossmen написал(а):
Всем большое спасибо))Мне проста надо было сесть и подумать))
Все работает))
Вот скрипт
Все работает))
Вот скрипт
function people ($name_people,$year,$day,$month, $ser)
{
$query = "SELECT * FROM tabl_people WHERE 1 = '1'";
if ($year != 0)
$query .= " and YEAR(`birthday`) = '" . $year . "'";
if ($day != 0)
$query .= " and DAYOFMONTH(`birthday`) = '" . $day . "'";
if ($month != 0)
$query .= " and MONTH(`birthday`) = '" . $month . "'";
$query_distribution = "SELECT * FROM tabl_distribution WHERE ser = '$ser'";
$result_distributiont = mysql_query($query_distribution);
if($ser != 0)
{
$i = 0;
while($myrow_distributiont = mysql_fetch_assoc($result_distributiont))
{
$id_array[$i] = $myrow_distributiont['actors'];
$i++;
}
$id = implode (",", $id_array);
$query .= " and id_people IN (". $id .")";
}
Спустя 4 часа, 30 минут, 31 секунда (9.01.2011 - 16:05) Invis1ble написал(а):
Bossmen
ну слава яйцам =)
ну слава яйцам =)
Спустя 39 секунд (9.01.2011 - 16:05) Bossmen написал(а):
XDD