![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 686 Pomógł: 0 Dołączył: 10.11.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam , mam sobie tabele w bazie danych ktora wyglada nastepujaco :
+-----------+-----------------+----------------+-------------------+ | people_id | people_fullname | people_isactor | people_isdirector | +-----------+-----------------+----------------+-------------------+ | 1 | Jim Carrey | 1 | 0 | | 2 | Tom Shadyac | 0 | 1 | | 3 | Lawrence Kasdan | 0 | 0 | | 4 | Kevin Kline | 1 | 0 | | 5 | Ron Livingston | 0 | 0 | | 6 | Mike Judge | 0 | 0 | +-----------+-----------------+----------------+-------------------+ Nastepnie istnieje kod php ktorego troszke nie rozumiem:
Dokładnie chodzi o tą linijke :
Nie rozumiem zapisu po prawej stronie znaku równości |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jest to przypisanie wartości kolumny people_fullname dla bieżącego rekordu.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 686 Pomógł: 0 Dołączył: 10.11.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
To ze jest to przypisanie kolumny to dokladnie widac , ale nie rozumiem zapisu $people[$row['people_id']], prosilbym o wyjasnienei tego zapisu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , dlaczego przed wszystkim jest jeszcze $people ?
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Bo to nowa tablica. Poczytaj o tablicach asocjacyjnych, wszystko jest w dokumentacji. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
erix w tym przypadku nie jest to chyba tablica asocjacyjna, people_id w bazie jest typu integer.
Otrzymujemy coś takiego
natomiast nie tak:
W każdym bądź razie, dla wyjaśnienia. Wolfie w PHP tablice można tworzyć niejawnie, tzn, jeśli nie istnieje tablica $people, a później jest kawałek kodu:
to najpierw jest tworzona tablica $people, a następnie do 0 indeksu jest dodawana wartość 'coś tam' W takim przypadku:
Najpierw jawnie jest tworzona tablica, następnie jest do wpisywane 'coś tam' Na koniec jeszcze dodam, że tworzenie niejawne tablicy jest niewskazane. Dlaczego? Jeśli nie maiłabyś w bazie żadnego rekordu pasującego do zapytania to w przypadku wywołania później np:
Wywali błąd. $people nie jest brana w kontekście tablicy a sort wymaga jako pierwszego argumentu tablicy. Dlatego polecam pisać, np w Twoim przypadku:
Spory wywód ale mam nadzieje, że na coś się przyda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat erix w tym przypadku nie jest to chyba tablica asocjacyjna, people_id w bazie jest typu integer. Ale równie dobrze może nim nie być. Jakiekolwiek ustawianie "nienaturalne" kluczy jest asocjacją, czyż nie? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Byłby skalar, gdyby klucz był ustawiany automatycznie, a w przypadku nieciągłości identyfikatora tak się w tym przypadku nie stanie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
To znaczy, że jeśli ominiemy co najmniej jeden indeks, to PHP definiuje tablice jako asocjacyjna? Jeśli tak to nie wiedziałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
No tak to jest oczywiste.
Po prostu nie rozumiem dlaczego, dla takiej tablicy:
wspominasz o tablicach asocjacyjnych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
W sumie, to na jedno wychodzi. Ale sam fakt, że dla każdej wartości ustawiasz konkretny klucz, to - o ile się nie mylę - jest asocjacją.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Szczerze to nie wiem jak jest, bo w sprawy samego silnika PHP się nie zagłębiałem, ale imho, było by to bez sensu.
Według moich informacji, tablice asocjacyjne to tablice kluczowane nie indeksowane: indeks = integer, klucz = string (oraz reszta typów prostych poza int, które zostają rzutowane na stringa) i nie ma tutaj różnicy czy tablica jest wypełniana ręcznie indeks po indeksie czy od razu w czasie deklaracji. Wg. mnie nawet to nie jest tablicą asocjacyjną:
Podany string uda się kompletnie zrzutować na integera, więc poprawnie można się odwoływać do:
Szczerze to nie warto się dochodzić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jak to działa tak to działa, byle by robić tak, żeby błędów nie wywalało :] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 03:11 |