Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 31.12.2006 Ostrzeżenie: (0%)
|
Szukałem na forum, ale nawet nie wiem jak nazwać problem, toteż nowy temat:
Mam problem ze skonstruowaniem zapytania do mysql, które wyświetli mi rekordy zawierające dane należące do zbioru wejściowego. Dla przykłady chodzi mi o coś takiego, co dla zbioru wejściowego - tablicy z danymi - np. Kod Array { 0 => 1; 1 => 2; 2 => 3; 3 => 4; 4 => 5 } wyświetli rekordy, które w kolumnie 'wartości' posiada jeden lub wiecej z danych wejsciowych, ale pominie rekordy, w których znajdują się jeszcze inne, dodatkowe dane, np: Kod +----+-----------+ | id | wartości | +----+-----------+ | 1 | 1;2;5 | ok +----+-----------+ | 2 | 1;4 | ok +----+-----------+ | 3 | 1;2;3;4;5 | ok +----+-----------+ | 4 | 1;2;6 | bad +----+-----------+ | 5 | 7;8;10 | bad +----+-----------+ Zapytanie "SELECT * WHERE `wartości` REGEXP "1" AND wartości REGEXP "2" itd " nie ma tu prawa bytu, bo to bedzie szukało tylko tych wierszy, które zawierają wszystkie dane. Czy da się to zrobić za pomocą jednego zapytania do mysql, które wywali gotowca, czy wymagana będzie jeszcze obróbka danych w PHP, za pomocą porównań i sprawdzeń np in_array? Dodam, że o ile dla 5 zapytań to jest stosunkowo lekkie i do przetrawienia, o tyle przy 150 może być pewnie problem. Dodam, że skrypt będzie musiał wykonywać porównania dla dwóch kolumn... Tak jak teraz wartości porównać z tablicą spr_wartości i kolumnę wartości_2 porównać z tablicą spra_wartości_2 (zrozumiałe, czy może zamieszałem za bardzo?). A dane w bazie danych nie będą liczbami, a stringami... W jakiej formie najlepiej przechowywać dane w bazie danych? Czy oddzielone od siebie średnikami wystarczy, czy może zastosować coś innego? Co radzicie, żeby skrypt był lekki i szybki w działaniu? Dane wejściowe brane są z checkboxów, ale to chyba nie ma większego znaczenia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Pozdrawiam, ex ok, dla przykłądu jeszcze dodam, że zależałoby mi, aby skrypt działał na zasadzie tworzenia sałatki ze składników, które podał użytkownik. Np user podaje, że ma w lodówce: Kod Array { 0 => pomidor, 1 => ogórek, 2 => sałata, 3 => ananas, 4 => cebula... ... } No i w bazie są np takie wpisy: Kod id nazwa składniki 1 pomidorowo-ogórkowa pomidor, ogórek 2 ziemniaczana ziemniaki,cebula, kukurydza 3 dziwna cebula,ananas, sałata 4 odlotowa zioło,haszysz, kokaina I w takiej sytuacji wybiera rekordy 1 i 3, bo składniki, z których się składają zawierają się w zbiorze, który posiada pseudo kucharz. Wiem, że jest tu ktoś na tyle mądry, kto poratuje w tej zamieszanej dla mnie sytuacji... P.S. Autor nie zaleca testowania podanych w przykładzie sałatek! Ten post edytował exseerius 26.08.2008, 10:35:56 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 31.12.2006 Ostrzeżenie: (0%)
|
D) tyle ile wybrałem atrakcji i\lub mniej (na pewno nie więcej).
Dla tego przykład z sałaytką dałem - w lodówce mam kilka składników a to jaka sałatka bedzie nie ma znaczenia, grunt, żey z tego co mam zrobić coś, a niekoniecznie trzeba użyć wszystko! I oczywiście wszystkie muszą być w jednym przepisie. Bo z tego co mi sie wydaje po wybraniu opcji <=4 wywali mi salatki, które mają np jeden składnik co mam w lodówce i np 3 inne, które musiałbym kupic... A to już odpada... |
|
|
|
exseerius Zapytanie do mysql - porównanie z tablicą. 26.08.2008, 10:25:07
SirZooro Bezpośrednio z zapytania będzie raczej ciężko. Mas... 26.08.2008, 13:48:44
exseerius ok, załóżmy, że wybieram opcję druga, tabelę słown... 26.08.2008, 14:04:28
dymsza nie odpowiednio skontrolowałeś bazę powinieneś mie... 28.08.2008, 21:41:45
exseerius Ok, zmieniłem struktury tabel i mam teraz takie:
... 29.08.2008, 13:43:18
dymsza masz napisane a s zamiast AS mój błąd ale trzeba ... 29.08.2008, 20:27:04
exseerius Poprawiłem kilka literówek, ale nadal nic... :/ 29.08.2008, 22:40:36
szopen Dane takie jak "1;2;3;4;5" nie mają racj... 31.08.2008, 21:52:21
dymsza nie tu leży problem on po prostu zapisał '1,2,... 1.09.2008, 08:31:06
exseerius @szopen, jakbyś czytał cały w... 1.09.2008, 17:05:24
szopen racja -- po zobaczeniu takiej struktury nie czyta... 1.09.2008, 21:16:28
exseerius ok szopen, a powiedz teraz co tym osiągnę? Bo zapy... 1.09.2008, 21:44:19
szopen Nie wiem jak wygląda Twoje zapytanie. Nie wiem co ... 1.09.2008, 21:50:01
dymsza robisz pod zapytanie wtedy
[SQL] pobierz, plaint... 4.09.2008, 11:50:09 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 09:24 |