![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym pobierać dane z kursorów do jednej tablicy asocjacyjnej. Bez PDO było to proste, klasa zwracała zapytania a potem np funckją mysql_fetch_row pobierałem każdy wiersz. W PDO nie mogę w innym miejscu pobierać po jednym wierszu z kursora bo muszę w klasie z zapytaniem zamknąć ten kursor. Więć klasa z zapytaniem musi mi od razu wszystko zwrócić. Jest w PDO funkcja fetchAll() ale ona zwraca to w dziwny sposób: Array ( [0] => Array ( [id] => 1 [0] => 1 [nazwa] => przyroda [1] => przyroda ) [1] => Array ( [id] => 2 [0] => 2 [nazwa] => motory / samochody [1] => motory / samochody ) ). A dodam że tabela to tylko: id, nazwa. Czy ktoś wie jak to zwrócić, by potem móc se jak człowiek odczytać foreach ($dane as $id => $nazwa)(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Ten post edytował nospor 9.05.2006, 16:31:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jest w PDO funkcja fetchAll() ale ona zwraca to w dziwny sposób: Array ( [0] => Array ( [id] => 1 [0] => 1 [nazwa] => przyroda [1] => przyroda ) [1] => Array ( [id] => 2 [0] => 2 [nazwa] => motory / samochody [1] => motory / samochody ) ). A dodam że tabela to tylko: id, nazwa. Ona zwraca ci oprócz indexow bedacych nazwami kolumn, rowniez indexy liczbowe, w kolejnosci wystepowania kolumn. Jest tak domyslnie. jak chcesz miec tylko indexy nazw kolumn, musisz wywolac tę matodę z odpowiednim parametrem.Ale to wszystko jest w manualu.... http://pl.php.net/manual/pl/function.pdost...nt-fetchall.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 11:34:19) jak chcesz miec tylko indexy nazw kolumn, musisz wywolac tę matodę z odpowiednim parametrem.Ale to wszystko jest w manualu.... Ale chciałbym mieć w tej tablicy indeksy i nazwy... Mogę se poradzić oczywiście mając tylko nazwy ale mam też takie funkcje gdzie chciałbym mieć kilka pól z tabeli... Chyba że jakoś wyławiać dane z tej ich dziwnej tabeli z dodtakowymi indeksami... Ale jeśli to jedyny sposób to w takim razie PDO jest jeszcze nieprzemyślane i niedopracowane. |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale chciałbym mieć w tej tablicy indeksy i nazwy (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) No przecierz masz. masz indexy bedące nazwami pol, masz i indexy bedące liczbami kolejnosci kolumn. Co ty chcesz miec? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 11:53:56) No przecierz masz. masz indexy bedące nazwami pol, masz i indexy bedące liczbami kolejnosci kolumn. Co ty chcesz miec? Przepraszam nospor za nieprecyzyjność (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam tabelę zainteresowania(id, nazwa). Z niej chcę mieć id i nazwę w tablicy asocjacyjnej. Liczby które są kolejnością nazw które dostaję robiąc Twoim sposobem fetchAll(PDO::FETCH_COLUMN, 1) są o jeden mniejsze niż pole id z tabeli. To nie jest taki problem dodać jeden przy przetwarzaniu ale... Chodzi mi o to, żeby to rozwiązać w przypadku gdy będę miał więcej pól. Jak dostać wtedy przyjemną tablicę albo jak wyłowić z tej otrzymanej z fetchAll() potrzebne dane?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Mam nadzieję teraz dokładniej napisałem. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ja cie nie proponowalem PDO::FETCH_COLUMN (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
swoją drogą PDO::FETCH_COLUMN zwraca ci tablice, ktorej wartosciami są wartosci kolejnych rekordow z danej kolimny, a indexami sa liczby od 0 do iloscwynikow-1. Index ma sie nijak w tym przypadku do twojego ID. ID masz w wartosciach tablicy a nie w jej indexach. MI chodzilo, ze domyslnie masz PDO::FETCH_BOTH. edit: luknij na przyklady w manualu, amoze ci sie rozjasni |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 12:10:00) Index ma sie nijak w tym przypadku do twojego ID. ID masz w wartosciach tablicy a nie w jej indexach. MI chodzilo, ze domyslnie masz PDO::FETCH_BOTH. edit: luknij na przyklady w manualu, amoze ci sie rozjasni Chodziło mi, że akurat w tym przypadku indeksy są o jeden mniejsze od ID. Właśnie przeglądam te przykłady i chyba wezmę tę wersję z fetchAll()
i będę wyławiał pola nazwa i id. Jednak nadal twierdzę, że to jest niedopracoane jakieś (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Dzięki za pomoc. Ten post edytował jafet 9.05.2006, 13:22:25 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Chodziło mi, że akurat w tym przypadku indeksy są o jeden mniejsze od ID. a jakby ci sie ID zaczynalo od 100, to bys napisal ze index rozni się o 100? A co jesli id byloby stringiem? To o ile index by sie roznil od ID? Taki przyklad jest w manualu. Mowie ci jeszcze raz. Indexy, przy PDO::FETCH_COLUMN jest to zwykla numeracja od 0 do iloscwynikow-1, ktora nijak ma sie do wartosci w tabeli. Jest to tak przyjeta numeracja.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 12:25:37) a jakby ci sie ID zaczynalo od 100, to bys napisal ze index rozni się o 100? A co jesli id byloby stringiem? To o ile index by sie roznil od ID? Taki przyklad jest w manualu. Mowie ci jeszcze raz. Indexy, przy PDO::FETCH_COLUMN jest to zwykla numeracja od 0 do iloscwynikow-1, ktora nijak ma sie do wartosci w tabeli. Jest to tak przyjeta numeracja. Rozumiem. Zrezygnowałem z takiej wersji. To początkowa desperacja (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak sie rozgadalismy na temat tych indexów, ze calkowicie ci zapomnialem powiedziec co i jak, gdyz ty niedolukales wszystkiego.
Cytat Właśnie przeglądam te przykłady i chyba wezmę tę wersję z fetchAll() i będę wyławiał pola nazwa i id. Jednak nadal twierdzę, że to jest niedopracoane jakieś http://pl.php.net/manual/pl/function.pdostatement-fetch.php PDO::FETCH_ASSOC zwroci ci tylko indexy z nazwami pol. Uwierz, to jest dopracowane (pod tym kątem) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 13:36:15) Tak sie rozgadalismy na temat tych indexów, ze calkowicie ci zapomnialem powiedziec co i jak, gdyz ty niedolukales wszystkiego. http://pl.php.net/manual/pl/function.pdostatement-fetch.php PDO::FETCH_ASSOC zwroci ci tylko indexy z nazwami pol. Uwierz, to jest dopracowane (pod tym kątem) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Też właśnie wziąłem FETCH_ASSOC zanim przeczytałem Twoją odp. Ale... To też nie do końca to co chciałem, bo trzeba przelatywać przez cały kursor i dokładać do tablicy każdy rekord. Bo funkcja fetch pobiera zawsze tylko jeden rekord. Chyba jednak nie ma czegoś takiego w PDO, żeby jednym poleceniem stworzyć tablicę asocjacyjną z wszystkich rekordów pobierając np 2 zadane pola... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chyba jestem wybredny (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
oj.....
w linku do fetchall, jest napisane, ze lista wszystkich dostepnych flag jest w fetch() co oznacza, ze lecisz do fetch(), patrzysz jakie tam są flagi, i uzywasz ich w fetchall() dobra rada na dzis: spojrz w moj podpis (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) edit: poziom Twoich kolejnych "problemów" zmusza mnie do przeniesienia topicu na wlasciwe miejsce (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nospor @ 2006-05-09 15:15:54) Kurde, to się nazywa analfabetyzm wtórny. To jest nauczka na całe życie, żeby nie łowić słowa klucze z maualna ale czytać od początku do końca. Dzięki wielkie Nospor i sorry za kłopot. Pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:47 |