Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd 'use a scalar value as an array'
Forum PHP.pl > Forum > Przedszkole
JamalBIG
Witam

Proszę o podpowiedź, gdzie może leżeć problem w poniższym skrypcie - w zaznaczonym wierszu zwraca mi błąd: 'Cannot use a scalar value as an array'
  1. $_SESSION['zdjecia'] = array();
  2. $zdjecia = @mysql_query("SELECT * FROM ".$prefix."_przedmioty_zdjecia WHERE id_ogloszenia=".$_GET['id']." ORDER BY id ASC");
  3. while ($zdj = @mysql_fetch_array($zdjecia)) {
  4. $_SESSION['zdjecia'][] = $zdj['nazwa']; //w tej linijce jest błąd
  5. }


Z góry dzięki za pomoc
Pozdrawiam
markonix
  1. var_dump($zdj) ?

W sumie nie widzę tak od razu przyczyny.

Ale to:
  1. id_ogloszenia=".$_GET['id']."

Filtrujesz to gdzieś wyżej czy to podręcznikowy przykład SQL Injection?
JamalBIG
Baza zwraca mi bez problemu wartość '$zdj['nazwa']' tak więc nie jest puste dlatego dziwi mnie ten błąd;

Skrypt napisany na szybko do testowania na lokalnym hoście dlatego nie bawiłem się z filtrowanie;

Udało mi się to rozwiązać w taki sposób:
  1. $_SESSION['zdjecia'] = array();
  2. $zdjecia_query = @mysql_query("SELECT * FROM ".$prefix."_przedmioty_zdjecia WHERE id_ogloszenia=".$_GET['id']." ORDER BY id ASC");
  3. while ($lista = @mysql_fetch_array($zdjecia_query)) {
  4. $_SESSION['zdjecia'][] = $lista['nazwa']; //w tej linijce jest błąd
  5. }
markonix
Czyli $zdj['nazwa'] wyświetla prawidłową wartość, a var_dump wskazuje że $zdj jest tablicą?
Cross77
A może uzyc po prostu array_push($_SESSION['zdjecia'], $zdj['nazwa'])
Mackos
Nie, moim zdaniem chodzi o kolejny wymiar tablicy:
$_SESSION['zdjecia'][]
Nie pamiętam jak to było ale też kiedyś miałem taki problem i chyba pomogło stworzenie czegoś w stylu:
$_SESSION['zdjecia'][$iteracja] lub $_SESSION['zdjecia']['macierz'][$iteracja]
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.