![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Mam taki kod:
Gdy próbuję wyświetlić nową, połączoną tablicę :
to dostaję tylko ostatni element tej poprzedniej... Co robię nie tak? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeczytaj w manualu jak uzywac array_merge_recursive bo widzę nie czytales
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
chodzi Ci o taki zapis: $cos2 = array_merge_recursive($cos2, $cos) ;
![]() ![]() jeśli tak, to nie pomogło:( Ten post edytował northwest 18.01.2011, 14:40:33 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
lączysz cos2 z cos a tego cos nigdzie nie ustawiasz. Nie liczac
$cos = array(); to jak ma ci cokolwiek laczyc jak ty laczysz jedną tabelę z pustą tabelą -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Prawie mi się udało zwalczyć problem
![]()
dlaczego jak wykonuje kod:
to wyświetla mi się tylko ostatni rekord z tej tablicy? Ten post edytował northwest 19.01.2011, 12:11:26 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
while ($stmt->fetch()) {
$cos = $cos3['id']."-".$cos3['login']; $cos++; //$cos = array_merge_recursive($cos2, $cos) ; //print_r($cos2); } W petli za każdym razem nadpisujesz $cos wiec nic dziwnego, że zwraca ci tylko ostatni rekord. W pętli każdy kolejny rekord nadpisuje wartość $cos ps: czemu miało służyć $cos++ ? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
- a co ten kod robi? przypisujesz zmiennej cos jakieś wartości, następnie zwiększasz o jeden tą zmienną (po co a w dodatku to nie zadziała jeśli w zmiennej jest tekst), potem znów jej przypisujesz jakieś wartości i znów zwiększasz o jeden i tak aż do końca pętli while. Zrób sobie: - to będziesz widział, co jest nie tak. I jak chcesz łączyć tablice to najpierw próbuj rozwiązań prostych: - a dopiero gdy te zawiodą bierz się za array_merge_recursive I jeśli używasz PHP to poczytaj najpierw o funkcjach i słowie kluczowym return: bo zaraz będziesz miał pretensje: - dlaczego nie echuje nic na ekran. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
while ($stmt->fetch()) { $cos = $cos3['id']."-".$cos3['login']; $cos++; //$cos = array_merge_recursive($cos2, $cos) ; //print_r($cos2); } W petli za każdym razem nadpisujesz $cos wiec nic dziwnego, że zwraca ci tylko ostatni rekord. W pętli każdy kolejny rekord nadpisuje wartość $cos ps: czemu miało służyć $cos++ ? to $cos++ miało dodawać do talicy jako kolejna wartość ![]() jak to najlepiej zrobić? to jest funkcja, wiem po co tam jest return ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
jeżeli w pętli tworzysz elementy tablicy to zrób to mniej więcej tak:
to tylko przykład, co do return to chyba coś nie bardzo Ci wyszło z kodu z pierwszego postu wynika, że $stmt->close(); nigdy się nie wykona. Natomiast w przypadku gdy warunek if ($stmt = $mysqli->prepare($string)) nie zostanie spełniony funkcja w ogóle nie ma return. Poza tym nie bardzo widzę sens tej funkcji jako argument żądasz zapytania do bazy ale jeżeli zrobisz: odczyt("SELECT imie,nazwisko FROM tabela") to jaki sens ma wówczas ta funkcja skoro na sztywno odczytujesz nazwy kolumn ? -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
jeżeli w pętli tworzysz elementy tablicy to zrób to mniej więcej tak:
to tylko przykład, co do return to chyba coś nie bardzo Ci wyszło z kodu z pierwszego postu wynika, że $stmt->close(); nigdy się nie wykona. Natomiast w przypadku gdy warunek if ($stmt = $mysqli->prepare($string)) nie zostanie spełniony funkcja w ogóle nie ma return. Poza tym nie bardzo widzę sens tej funkcji jako argument żądasz zapytania do bazy ale jeżeli zrobisz: odczyt("SELECT imie,nazwisko FROM tabela") to jaki sens ma wówczas ta funkcja skoro na sztywno odczytujesz nazwy kolumn ? Dzięki, zadziałało ![]()
mam teraz taki kod, chyba wszystko już jest ok? co myślisz o wydajności takiej funkcji? Sensem działania tego kodu ma być wygenerowanie tablicy z danymi z mysql i późniejsza ich obsługa/obróbka w php... takie rozwiązanie będzie szybsze/optymalniejsze? Ten post edytował northwest 20.01.2011, 20:57:34 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jesli te dane mają sie nadawac do jakiejkolwiek obrobki później to:
nie:$cos[] = $cos3['id']."-".$cos3['login']; a: $cos[] = $cos3; lub: $cos[$cos3['id']] = $cos3['login']; -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Dzięki, zadziałało ![]()
mam teraz taki kod, chyba wszystko już jest ok? co myślisz o wydajności takiej funkcji? Sensem działania tego kodu ma być wygenerowanie tablicy z danymi z mysql i późniejsza ich obsługa/obróbka w php... takie rozwiązanie będzie szybsze/optymalniejsze? oki, dzięki ![]() ps. co myślisz o praktyczności takiego rozwiązania? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 08:56 |