Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie - przyrównanie - pomijanie wybranych znaków
karolski
post
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


Mam zserializowaną tablicę (o różnych wymiarach, wartościach 1 lub 0) w bazie danych, teraz chcę robić zapytania, kóre mi wybiorą np rekordy które mają w 2 kolumnie i 2 wierszu wartość 1, mam taką tablicę :


  1. a:4:{
  2. i:0;a:4:{i:0;i:0; i:1;i:0; i:2;i:0; i:3;i:0;}
  3. i:1;a:4:{i:0;i:0; i:1;i:1; i:2;i:0; i:3;i:0;}
  4. i:2;a:4:{i:0;i:0; i:1;i:0; i:2;i:0; i:3;i:0;}
  5. i:3;a:4:{i:0;i:0; i:1;i:0; i:2;i:0; i:3;i:0;}}
  6.  
  7. aby była bardziej czytelna dodałem spacje i entery


teraz wymysiłem, że zrobie zpaytanie które znajdzie mi tak isam string:

  1. "i:1;a:4:{i:0;i:0; i:1;i:1;"


lecz pojawiają się tu 2 wartości które mogą być różne, jak mogę dodać do zapytania tzw. gwiazdkę lub pominięcie tego znaku przy dopasowywaniu? chodzi mi o coś takiego:
  1. "i:1;a:".*.":{i:0;i:".*."; i:1;i:1;"


nie mogę znaleźć żadnych informacji na ten temat, nie wiem jak to sformułować (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A możesz powiedzieć, po co? Zdeserializuj do wartości.

PS. Przydadzą Ci się funkcje array_keys i array_values.
Go to the top of the page
+Quote Post
karolski
post
Post #3





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


Potrzebuje znaleźć rekordy z odpowiednimi wartościami w tablicy(polu w tabeli), oczywiście mógłbym pobrać te wartości i przefiltrować je w php, ale wolał bym w zapytaniu SQL.

Ten post edytował karolski 14.12.2010, 23:36:47
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jeżeli chcesz robić cokolwiek poza odczytywaniem/zapisywaniem takich danych na poziomie bazy danych powinieneś stworzyć normalną, naturalną dla relacyjnych baz danych strukturę, a nie wypychać tam zserializowaną tablicę.

Od biedy: REGEXP().
Go to the top of the page
+Quote Post
karolski
post
Post #5





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź!

Stosuję serializację ponieważ pojawiają się tam bardzo różne typy danych np.:
- normalny tekst
- tablica 1 wymiarowa o dowolnych wymiarach
- tablica wielowymiarowa o dowolnych wymiarach

są to odpowiedzi zbierane z różnych typów pytań w ankiecie.

Pytania i odpowiedzi do zamkniętych pytań są w bazie jako normalne rekordy, zaś odpowiedzi serializuje do jednego pola. Wydaje mi się, że to dobre rozwiązanie, miałem problem z filtrowaniem tych odpowiedzi ale dzięki REGEXP() mogę to zrobić.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 16:10