Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Filtrowanie wyników z tablicy asocjacyjnej
miniol
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 4
Dołączył: 25.03.2011

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


W jaki sposób mogę wybrać z tabeli asocjacyjnej tylko interesujące mnie rekordy?

Dla przykładu podam taką tabelę:

Imię|Nazwisko
-----------------
Adam|Nowak
Piotr|Kowalski
Adam|Iksiński
Jan|Ciekawski


Chciałbym teraz wyświetlić rekordy w których imię to "Adam".

W mysql'u dałbym takie zapytanie
  1. SELECT * FROM `osoby` WHERE `imię` = 'Adam';


Ale nie wiem jak można to zrobić na tablicy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




A w jaki sposób konstruujesz tablice? Może array_search?
Go to the top of the page
+Quote Post
miniol
post
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 4
Dołączył: 25.03.2011

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


Tabelę dodaję za pomocą pętli for. A dane są pobierane z pliku .dbf.

Moja tabela ma taką składnię:
  1. for ($i = 1; $i <= $ile_rekordow; $i++) {
  2. $tabela['imie'][$rekord] = $dane['IMIE'];
  3. $tabela['nazwisko'][$rekord] = $linia['NAZWISKO'];
  4. $rekord++;
  5. }
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Chyba powinno być:

  1. $tabela[$rekord]['imie'] = $dane['IMIE'];
  2. $tabela[$rekord]['nazwisko'] = $linia['NAZWISKO'];


I chyba będziesz musiał zastosować array_walk_recursive i przekazać do callback'a swoją wartość, którą szukasz.
Go to the top of the page
+Quote Post
miniol
post
Post #5





Grupa: Zarejestrowani
Postów: 84
Pomógł: 4
Dołączył: 25.03.2011

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


Cytat(piotrooo89 @ 20.10.2011, 11:30:13 ) *
Chyba powinno być:

  1. $tabela[$rekord]['imie'] = $dane['IMIE'];
  2. $tabela[$rekord]['nazwisko'] = $linia['NAZWISKO'];


I chyba będziesz musiał zastosować array_walk_recursive i przekazać do callback'a swoją wartość, którą szukasz.

Poczytałem trochę o tym i... niewiele mi to powiedziało (IMG:style_emoticons/default/smile.gif) W każdym razie rozwiązałem to swoim łopatologicznym sposobem za pomocą pętli i warunków. I na razie mi to chyba wystarczy. Bo docelowo nie chodziło mi o imiona, tylko o magazyny, ale dla łatwiejszego sprecyzowania pisałem o imionach.
Mam 40 magazynów i każdy z nich będzie sprawdzany, czy znajduje się w tablicy. Może i nie jest to zbyt optymalne, ale mi to wystarczy.
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 - 18:28