![]() |
![]() ![]() |
![]() |
-duk- |
![]()
Post
#1
|
Goście ![]() |
Witam
Mam problem, gdyż nie wiem jak się do tego zabrać. Mam w bazie rekordy i w jednym polu wartości typu Cytat Jan Kowalski (Jan Kowalski), Tomasz Nowak (Tomasz Nowak) Nie zawsze to co znajduje się w nawiasie to to samo co przed nim. I teraz chodzi mi o to, abym mógł tymi nazwiskami posługiwać się oddzielnie w dwóch różnych zmiennych. Za pomocą zapytania do mysql pobieram te dane i mam je w całości w jednej zmiennej i nie wiem co dalej. Myślałem żeby za pomocą explode usunąć przecinek, ale nie wiem co zrobić, aby te nazwiska z nawiasu wydostać do nowej zmiennej.W jaki sposób mogę tego dokonać? Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 28.07.2011 Ostrzeżenie: (10%) ![]() ![]() |
$nowa_zmienna = explode(",", $zmienna_z_bazy);
echo $nowa_zmienna[1]; |
|
|
-duk- |
![]()
Post
#3
|
Goście ![]() |
Nie o to mi chodziło, bo o rozbiciu przy explode pisałem już sam.
Jeśli zastosuję coś takiego to $nowa_zmienna[1]; da mi Jan Kowalski (Jan Kowalski) a echo $nowa_zmienna[2]; Tomasz Nowak (Tomasz Nowak) A ja chcę, aby $nowa_zmienna[1]; dało mi Jan Kowalski $nowa_zmienna[2]; Tomasz Nowak a $jeszcze_inna_zmienna[1]; Jan Kowalski itd. Teraz chyba jest jaśniej o co mi chodzi ![]() Tylko właśnie nie wiem jak mogę to osiągnąć. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No to wyrażenia regularne, preg_match_all()
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-duk- |
![]()
Post
#5
|
Goście ![]() |
Tak szczerze mówiąć to z wyrażami regularnymi nie miałem jeszcze nigdy styczności.
Mogę prosić o jakąś większą wskazówkę? chociaż kawałek kodu, który zrobi to co potrzebuję, bo kompletnie nie wiem jak to tu użyć, czy mam stosować jeszcze wcześniej explode() czy nie. Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw rozbijasz za pomocą explode() z przecinkiem jako delimiterem a potem dla każdego kawałka
Zamiast echo() możesz sobie z tablicą $podzielone zrobić oczywiście coś innego. Ten post edytował qrzysztof 1.12.2011, 18:58:48 -------------------- Znalazłeś sam rozwiązanie swojego problemu? Nie pisz "już wiem, do zamknięcia". Podziel się rozwiązaniem - inni będą mieli łatwiej.
|
|
|
-Gość- |
![]()
Post
#7
|
Goście ![]() |
Czyli mam zrobić coś w tym stylu?
Bo później w preg_match_all nie mogę operować na tablicy z explode więc muszę wrócić do stringa, ale chyba jednak coś źle dalej robię, bo później tablica jest pusta. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Znalazłeś sam rozwiązanie swojego problemu? Nie pisz "już wiem, do zamknięcia". Podziel się rozwiązaniem - inni będą mieli łatwiej.
|
|
|
-duk- |
![]()
Post
#9
|
Goście ![]() |
Ok, wielkie dzięki. Działa, ale jest jedno ale.
To ma się rozbijać wszystko na osobne tablice? Bo myślałem, że w jednej tablicy będę miał nazwiska, które są przed nawiasem, a w drugiej te, które są w nawiasie. I wtedy wyświetliłbym sobie to za pomocą echo, a teraz nie mam pojęcia jak za pomocą echo mogę to wyświetlić. print_r daje taką strukturę
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 6 Dołączył: 23.03.2008 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Praktycznie tak samo, tylko, że tu masz o jeden wymiar więcej. Jeżeli np. Twoja zmienna nazywa się $nazwiska, to wystarczy, że napiszesz $nazwiska[0][1][0] i wyświetli Jan Nowak. Jeżeli napiszesz $nazwiska[0][2][0] to wyświetli Mateusz Kowalski. Analogicznie wyświetlisz resztę :-).
Ten post edytował Trobin 2.12.2011, 13:40:46 -------------------- Pracuję na: Apache 2.2.4, MySQL 5.0.20a, PHP 5.3.0
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 16:57 |