Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienna nazwa pola w array()
Forum PHP.pl > Forum > Przedszkole
Maxie
Witam. Zrobiłem ostatnio sobie dwie klasy, które miały mi pomóc ogarnąć tą ilość kodu źródłowego. Są to klasy user i db. db działa w 100% poprawnie. Do user jednak potrzebuję wskazówki. Chciałem zrobić coś w tym stylu:
  1. public static function info($id){
  2. if($id == NULL){
  3. $id = $_SESSION['user']['ID'];
  4. }
  5. $result = db::assoc(db::select("SELECT * FROM `User` WHERE `ID` = '".$id."' "));
  6. while($record = db::assoc(db::select("SELECT * FROM `UserOptions` WHERE `UserID` = '".$id."' "))){
  7. $type = $record['Type'];
  8. $result[$type] = $record['Value'];
  9. }
  10. return $result;
  11. }

Teoretycznie powinno działać. Wszystko jest napisane poprawnie, pojedyncze linie z osobna także wydają się być logiczne i spójne ze sobą. Lecz jednak coś nie działa. Nie mogę dokładnie sprawdzić co ponieważ strona nie ładuję się po dodaniu odniesienia do tej funkcji z klasy user i wywala błąd 504 bad gateway Domyślam się, że to przez linię:
  1. $result[$type] = $record['Value'];

Wiecie może jak naprawić ten skrypt?
Z góry dziękuję za odpowiedzi i pozdrawiam!
Posio
Jeśli wywala Ci 504 to pomyśl o pętli. ew. o innej czesci kodu. Do tablicy masz przypisane ok.
nospor
while($record = db::assoc(db::select("SELECT * FROM `UserOptions` WHERE `UserID` = '".$id."' "))){
W tej linijce się zapętlasz.... do db:assoc masz przekaz wynik select zrobiony przed pętlą a nie w pętli, bo tak jak teraz ciągle i ciągle wykonujesz to samo zapytanie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.