Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyszukanie ludzi po e-mailu podawanym po ,
Forum PHP.pl > Forum > Przedszkole
RaVq3K
Witam serdecznie mam mały problem

Stworzyłem sobie formularz do którego należy wprowadzić email ale chciał bym aby można było wprowadzić kilka emaili po przecinku |

np.

test@test.pl,test2@test2.pl

I chcę aby zwróciło mi wszystkie informacje o ludziach którzy mają ten email w bazie

  1. foreach($emaile as $key => $val)
  2. {
  3. v($emaile[$key]);
  4. $tablica = R::GetAll('SELECT * FROM f_person2 WHERE f_email = "'.$emaile[$key].'" LIMIT 100');
  5. }


ale nie wiem dlaczego pobiera mi dane tylko dla ostatniego rekordu
in5ane
Nie wiem, czy dobrze zrozumiałem, bo chaotyczny test post bardzo, ale może tak:
  1. SELECT * FROM f_person2 WHERE f_email = "%'.$emaile[$key].'%" LIMIT 100

Z tym, że to rozwązanie zadziała, ale będzie miał bugi, np. będziesz chciał znaleźć e-maila test@test.pl, ale znajdzie Ci równiez np. e-maila w bazie ravq3k_test@test.pl.
nospor
$tablica = R::GetAl
Poniewaz w tym miejscu za kazdym razem nadpisujesz zmienną $tablica aktualnym wynikiem. W rezultacie zawsze otrzymasz ostatnio pobierane rekord.
RaVq3K
$tablica = array(); smile.gif
nospor
No i co z tego skoro za kazdym razem i tak nadpisujesz te zmienna.... czytaj ze zrozumieniem :/

Jak cchesz cos dodac do tablicy to sie to robi tak:
$tablica[]= R::GetAll
Bo to co ty robisz to jest nadpisywanie a nie dodawanie...
RaVq3K
No dobra ale gdy odczytuje dane to daje to w foreach

Czyli nadpisuje ale wszystko powinno mi się chyba wyświetlić

przykładowo

  1. $tablica = array();
  2.  
  3. $tablica = R::GetAll('SELECT * FROM f_person LIMIT 100');
  4.  
  5. foreach($tablica as $key => $val)
  6. {
  7. v($tablica);
  8. }


nospor
Po prostu zrob jak mowie.... nie mam sily tlumaczyc tej oczywistosci.
RaVq3K
Ale nie rozumiem czemu skoro kod który ci przedstawiłem działa aktualnie na niego patrze i zwraca mi dokładnie to co ci mówię

czyli array danych który wyświetlam dzięki pętli foreach

dla mnie to jest jasnę

Nie jasne dla mnie jest robienie array w array


johny_s
Cytat(RaVq3K @ 6.05.2014, 17:04:45 ) *
Nie jasne dla mnie jest robienie array w array

po to żeby mieć wszystkie wyniki a nie ostatni?
RaVq3K
To jest mój kod

  1. if($search == 1)
  2. {
  3. $tablica = R::GetAll('SELECT * FROM f_person2 LIMIT 100');
  4. }


I wyświetla mi z bazy 100 rekordów więc?

Działa bez robienia tablicy w tablicy

Teraz chcę jeszcze zrobić by nie dawało mi byle czego tylko ograniczyć to WHERE

czyli przykładowo

$tablica = R::GetAll('SELECT * FROM f_person2 WHERE imie = "Julia" LIMIT 100');

Znów wyświetli mi 100 rekordów z tym imieniem

A teraz chcę by wyświetliło mi po podanym emailu ale z różnicą wpisywania nie pojedyńczego
nospor
Zrozum chlopie, ze jak w petli robisz przypisanie do jakiejs zmiennej, to za kazdym razem nadpisujesz te zmienną. Tu nie ma zadnej filozofii....

Kod ci wczesniej dzialal, bo robiles to raz, nie w petli. Teraz ci nie dziala, bo robisz TO W PETLI ZROZUM TO WKONCU! Jak chcesz miec wszystko dodane do tablicy to masz DODAWAC a nie NADPISYWAC. Jak dodawac juz ci napisalem
johny_s
jak chcesz where z lista maili to używasz składni
  1. SELECT * FROM tablica WHERE pole IN (wartos1, wartosc2,...itd)


a i pamietaj ze maile to stringi wiec musisz je pozamykac w apostrofy
RaVq3K
No i działa bez robienia tablicy w tablicy

Dzięki johny_s
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.