Помощник
|
Сравнение значений |
yuriy_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob |
3.8.2010, 14:09;
Ответить: alexdrob
Сообщение
#2
|
|
на пхп implode + array_intersect
на mysql вам наверное придётся писать функцию вспомогательную, вы посмотрите что чем дальше тем становится сложнее и задумайтесь всё же над этим постом http://www.html.by/showpost.php?p=76198&postcount=9 очень скоро вы станете на том что ваша задача просто не будет иметь решения)) или решение будет громоздким и может повлеять на быстродействие и ошибки)) |
|
|
Mulder_hb |
3.8.2010, 17:44;
Ответить: Mulder_hb
Сообщение
#3
|
|
Как называется ячейка с данными и ячейка с фильтром? Я предположил, что `data` и `filter`.
[PHP]<?php $result = mysql_query($complekt); for ($res = array(); $row = mysql_fetch_assoc($result); $res[] = $row) foreach ($res as $val) { if ($val["data"] != $var["filter"]) { continue; } echo "<pre>"; print_r($val); echo "</pre>"; } ?>[/PHP] Как-то так. |
|
|
alexdrob |
3.8.2010, 18:18;
Ответить: alexdrob
Сообщение
#4
|
|
Mulder, судя по прошлому его топику у него не по 1му значению а именно через запятую в одной строке они записаны, надо типа
[PHP]$ar1=implode(',',$row['filter']); $ar2=implode(',',$row['data']); $ar=array_intersect($ar1,,$ar2); print_r($ar);[/PHP] так мы получим значения одинаковые, но получается что нужно вначале извлеч все данные из таблицы потом пробежать по ним потом составить новый sql на основе полученного нового массива $ar и сделать новую выборку |
|
|
yuriy_hb
|
Сообщение
#5
|
|
|
|
|
Mulder_hb |
3.8.2010, 21:21;
Ответить: Mulder_hb
Сообщение
#6
|
|
Вы скажите как надо. Если у меня строка 1,2,3,4, а фильтр 2,4, то строка удовлетворяет условию?
|
|
|
alexdrob |
4.8.2010, 0:48;
Ответить: alexdrob
Сообщение
#7
|
|
ну похоже что да) ему нужно найти пересечение множеств, в php это array_intersect, но ему нужно в самом sql запросе условие такое, но в mysql я не знаю есть ли такая функция, можно написать самому конечно попробовать))
|
|
|
yuriy_hb
|
Сообщение
#8
|
|
|
|
|
yuriy_hb
|
Сообщение
#9
|
|
|
|
|
Mulder_hb |
4.8.2010, 10:13;
Ответить: Mulder_hb
Сообщение
#10
|
|
Как вам уже говорили у вас не соблюдена нормальная форма, отсюда и такие проблемы, изобретение велосипедов, граблей и костылей. Вы вот не захотели изменить структуру бд и теперь тем дальше в лес, тем больше дров. Подгоните бд хотя бы под первую нормальную форму (в идеале хорошо было бы и под вторую, и под третью). И тогда задача решается элементарно:
SELECT * FROM `table` WHERE `id` = 2 AND `id` = 3; А так задача превращается в насилование сервера мускула и собственного времени на изучение теории запросов. Сначала нужно разбить ваш фильтр на составляющие, затем сделать выборку каждого составлющего, а затем определить область пересечения всех выборок. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
ExchangeRates.Pro: сравнение цен Bitcoin/Crypto обменников, бирж, P2P рынка 🚀 Поможем найти лучшие цены на обмен 34 криптовалют в 255 странах |
8 | ExchangeRatesPro | 3107 | 12.2.2020, 18:46 автор: ExchangeRatesPro |
|
Сравнение 2-х страниц на одну тему | 1 | rad_mw | 1040 | 28.6.2018, 18:27 автор: Napoleon-007 |
|
Php - скрипт. Сравнение строк в csv файлах | 2 | PoliteX | 2477 | 21.7.2015, 11:50 автор: PoliteX |
|
Сравнение на основе регулярных выражений. Бюджет 40 евро. | 5 | Nickondr | 4755 | 1.10.2011, 23:15 автор: -Webmaster- |
|
Вывод в цикле значений из базы! | 3 | Panich | 4246 | 27.5.2011, 16:14 автор: -Panich- |
Текстовая версия | Сейчас: 29.3.2024, 14:21 |