![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam Mam tabelę użytkowników z imieniem i nazwiskiem, potrzebuję wydobyć wiek tych użytkowników, którzy są online. Próbowałem komendą preg_match, ale niestety wydobywa ona tylko pierwszy rekord, a resztę zostawia i rekordy wyświetlone się powtarzają (powtarza się pierwszy rekord we wszystkich komórkach). Chciałem zrobić coś takiego, że np preg_match('@$name - tutaj wszystkie reguły i droga do wieku (.*?) a po lewo byłby wiek@', $link, $age), lecz niestety nie działa, bo w pierwszej opcji nie można z tego co wiem mieszać warunków ze zmiennymi. Dzięki z góry za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Napisałeś co chcesz osiągnąć, ale nie napisałeś co masz w tej zmiennej...
Co konkretnie zawiera zmienna $name? I gdzie tu w ogóle masz curl'a? (IMG:style_emoticons/default/ohmy.gif) Ten post edytował Michael2318 15.08.2014, 09:48:27 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Imiona są w tabeli, po prostu w takiej postaci <table> <tr><td>Anna Kowalska</td><td>20</td></tr> <tr><td>Jan Kowalski</td><td>40</td></tr> </table> Kiedy pobieram dane z tabeli w sposób, który pokazałem wyżej, to pobiera mi tylko pierwszy rekord wieku, i wstawia do każdego nazwiska pierwszy wiek. Ten post edytował benzulli 15.08.2014, 10:14:43 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
No więc tak. Tu masz regexpa odpowiedzialnego za wyciągnięcie tego wieku:
w TABLICY $matches[0] znajdują się zapisane wartości wiekowe. Teraz jak je podpiąć pod to co Ty masz. Zakładam, że wartości w tabeli są poukładane w takiej samej kolejności jak wyniki, które dostajesz z bazy danych.
Podsumowując ważne jest, abyś zdefiniował przed pętlą, że zmienna $i jest równa zero na start, a potem wewnątrz pętli while, na samym końcu zwiększał ten licznik o jeden ($i++). Przy takim układzie, Twój wiek dla danej osoby odczytujesz w ten sposób: $matches[0][$i]. Ten post edytował Michael2318 15.08.2014, 10:24:38 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie zarysowałem całej sytuacji.
Na stronie, którą pobieram z cURLa jest 1000 imion i nazwisk wraz z wiekiem. Ja pobieram tylko te, które mam u siebie w bazie danych (a one występują losowo na stronie, którą pobieram) i chcę zidentyfikować wiek kazdej osoby z tej mojej bazy. Zrobiłem tak jak mówiłeś, lecz niestety wyświetla się puste pole. Jak dam po staremu, to pierwszy rekord wieku pobrany z cURL pojawia się we wszystkich komórkach na mojej stronie. Ze strony, z której pobieram użytkowników - wszyscy oni są 'online', tak więc jest to losowa liczba, kto akurat w danej chwili będzie online. Ja pobieram tylko część użytkowników online z cURLa, tylko tych, którzy są u mnie w bazie. Tak samo chciałbym pobrać miejscowość tylko, że zakładam jak z wiekiem dostanę dobrą odpowiedź to analogicznie z miejscowością bez problemu zrobię, tylko dałem taki przykład. Ten post edytował benzulli 15.08.2014, 11:29:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
pierwszy preg_match sprawdza dla całej pobranej czy strony czy istnieje ta osoba, a drugi znów dla całego setu szuka wieku, ale to nie oznacza ze weźmie wiek dla tej konkretnej osoby, weźmie zawsze dla pierwszej, ww drugim preg match nie masz wyszczególnionej tej osoby (pattern znow powinien uwzględniać jak ta osoba się nazywa)
ja bym pobrane dane obrobił do tablicy i sprawdzał w tablicy po imieniu i nazwisku (to nie jest unikalne niestety) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie da się dać w patternie zmiennej z bazy, która by wyszukiwała imię, które znajduje się najbliżej wieku?? Co do imion i nazwisk - mogą się powtarzać, nie ma to znaczenia, czy dwa razy będzie np. Anna Kowalska.
Ten post edytował benzulli 15.08.2014, 12:39:40 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Pokaż wreszcie całą tą tabelę, razem z imieniem, wiekiem, miejscowością itd. Tak żeby szło wymyśleć do tego jakieś sensowne rozwiązanie.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Część tabeli, tak to wygląda. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Zapisz to jako np. test.php i wywołaj w przeglądarce. W odpowiedzi dostaniesz: Cytat Anna Kowalska 21 Sopot Andrzej Jan 42 Warszawa Andrzej Rykat 23 Opole Teraz pozostje Ci zapisać te zmienne z echo: do tablicy i jak wyciągasz z bazy nazwę danej osoby to suzkasz tego też w tablicy. Jak już znajdziesz to od razu masz miejscowość i wiek. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 3.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dałem do tablicy i przy wyszukiwaniu chcę porównać, lecz niestety w ogóle to nie działa (wiem, że coś na bank źle zrobiłem). Ten preg_match u samej góry musiałem pozmieniać bo tam występowała dwukolorowa tabelka, co kilka rekordów tło się zmieniało (klasa td) więc to jest dobrze bo mi wyświetla całą liste i wszystko, tylko kiedy chcę porównać jest problem. Ten post edytował benzulli 15.08.2014, 21:06:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 07:49 |