Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%)
|
Witam,
Wyciągam z bazy ilość rekordów, i np mam: $ile=6; i teraz dla każdego rekordu muszę mieć stworzoną macierz o nazwie $datax - gdzie x-kolejne numery rekordów. Czyli dla 6 rekordów powinno być tak:
Jak to zrobić najprościej? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 3 Dołączył: 28.10.2008 Skąd: Łuków Ostrzeżenie: (0%)
|
wg mnei metoda podwojengo dolara na pewno wywola blad ;d
Dobra mam. Powiedzmy ze pobrales te dane w tablicy i chialbys je miec w zmiennych: $dane1, $dane2,..,$danen. No wiec w zmiennej i zapisujesz ile elementow pobrales i robimy teraz tak:
Teraz o funkcji extract (moze Ci sie na przyszlosc przydac): Definicja funkcji: extract(array tablica [,typ_ekstrakcji][,string przedrostek]) domyslnym przedrostkiem jest: NULL domyslnym typem ekstrakcji jest: EXTR_OVERWRITE Dla czego tak sa ulozone parametry? Logiczne: poniewaz niektore typy ekstrakcji wymagaja przedrostka, o czym za chwile. wynikiem dzialania funkcji jest wyodrebnienie zmiennych w postaci (w zaleznosci od typu ekstrakcji): $klucz; lub $przedrostek_klucz Tak wiec podajac funkcji tablice musisz uwazac aby indeksy nie byly takiem ciagiem, ktory po eksstrakcji utworzylby niepoprawna nazwe zmiennej. Co sie wtedy dzieje? Nie wiem, bo z funkcji tej nie korzystalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Do czego sluzy typ ekstrakcji? Informuje on parser php co ma uczynić jeżeli będzie próba utworzenia zmiennej o takiej nazwie, któej już jest. Np.:
Domyslnym typem ekstrakcji jest EXTR_OVERWRITE (czyli nadpisanie zmiennej). Tak wiec wartosc zmiennej imie na koniec kodu bedzie string: "Daniel" EXTR_SKIP - wrazie kolizji ominięcie (tak wiec w naszym przypadku po zastosowaniu tego typu, wartosc zmiennej wynosilaby: "Damian" EXTR_PREFIX_SAME - w razie kolizji utworzenie zmiennej w postaci przedrostek_klucz (wymagany wtedy jest parametr przedrostek) EXTR_PREFIX_ALL - tworzy zmienne (wszystkie!!) w postaci: przedrostek_klucz (co sie dzieje jezeli juz istnieje taka zmienna nie wiem, bo jak wspomnialem nie korzystalem z tej funckji tyle razy aby sie natknac na taki poblem. Podejrzewam ze zostanie nadpisana) EXTR_PREFIX_INVALID - i tu rozwiazuje sie problem niepoprawnych nazw w kluczach tablic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dodaje przedrostek (ktory musi zostac zdefiniowany!!) przed nazwami zmiennych ktorych nazwy sa niepoprawne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) tak wiec nasza petla 1 moze miec postac:
Chociaz moze byc to niewygodne, bo zostana utowrzone zmienne w postaci: dane_1, dane_2.... EXTR_IF_EXISTS - tworzy zmienne tylko i wylacznie wtedy, kiedy istnieje juz taka zmienna, jaka chce utowrzyc i nadpisuja ja.
NA koniec otrzymamy zmienne: imie, nazwisko o wartosciach odpowiednio: "Dawid", "Kowalski". Zmienna miasto nie zostanie utworzona, poniewaz nie istniala do tej pory. EXTR_PREFIX_IF_EXISTS - to samo co EXTR_IF_EXISTS tyle ze dodaje przedrostek (ktory musi byc zdefiniowany!!) zeby nie nadpisac zmiennych istniejacych EXTR_REFS - wyodrebnia zmienne jako odwolania (dostepna od wersji php 4.3.0) Mam nadzieje ze o to chodzilo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Manwe89 15.12.2008, 19:03:18 |
|
|
|
tikky [PHP] x-wygenerowanych zmiennych 15.12.2008, 14:15:44
SirZooro Prawdopodobnie zadziała coś takiego (nie sprawdzał... 15.12.2008, 14:46:27
mike Skoro już piszesz macież to twórz macież:
[PHP] po... 15.12.2008, 14:58:13
tikky Nie mogę tworzyć kolejnej macieży. Taki układ jak ... 15.12.2008, 15:07:49
Manwe89 Jest taka funkcja ktora z
[PHP] pobierz, plaintext... 15.12.2008, 15:22:56
tikky Ok, będę wdzięczny za wszelkie informacje. Choć pr... 15.12.2008, 15:34:12
erix Cytatwg mnei metoda podwojengo dolara na pewno wyw... 15.12.2008, 19:05:03
Manwe89 no powiedzialem ze wg mnie a nie parsera 15.12.2008, 21:11:49
tikky Metoda podwójnego dolara działa i wydaje się najpr... 16.12.2008, 08:27:28 ![]() ![]() |
|
Aktualny czas: 2.01.2026 - 07:52 |