Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] $GLOBALS dla tablic
Forum PHP.pl > Forum > Przedszkole
isia
Witam...
Mam taki problem:

W pliku konfiguracyjnym : config.php mama zdefioniowane zmienne:

$cfg = array("web"=>"dana1", "rok"=>"dana2");
$cfg["tyt"] = "dana3";
$cfg["lib"] = "dana4";

itd i jeszcze drugą tabelę w podobny sposób.

w pliku index.php mam:

include("conf.php");
include("main.php");

w pliku main.php korzystam już z tych zmiennych.
Do tej pory normalnie odowływałam się wpisująć $cfg[web] i działa ALE problem polega na tym, że owszem działa ale na serwerze odkłada się w error logs błąd, że zmienna nie została zdefiniowana. Log strasznie szybko rośnie więc muszę to zmienić.
Poczytałam o zmiennych $GLOBALS ale jak użyję w confin.php zwykłej zmiennej - np.
$zm = "coś tam";

to odwołanie do niej w pliku main.php: $GLOBALS["zm"] działa.
Natomiast nie chce mi działać na tablicach.
Mam takie odwołaniew main.php:
$GLOBALS["cfg[web]"] i nie wyświetla żadnych błędów ale zmiennej też nie przekazuje.

Bardzo proszę o poradę!!!!
pozdrówko
isia
mike
nie tak:
  1. <?php
  2. $cfg[web]
  3. ?>

tylko tak

  1. <?php
  2. $cfg[ 'web' ]
  3. ?>

exclamation.gif!

P.S.
Prosze poprawić temat wątku. Obecny nie spełnia wymogów określonych w zasadach pisania na forum Przedszkole.
isia
i to wystarczy żeby nie ładowało błędów.
Nie trzeba tego wpakować do $HTTP_POST_VARS ?

:-)
poprawiłam nagłówek - przepraszam
nospor
i spiewamy refren: "Manual, manual i jeszcze raz manual" smile.gif
http://pl.php.net/manual/pl/language.types.array.php
przeczytaj se wszystko a szczegolnie skup sie na fragmencie od slow:
Cytat
Co wolno, a czego nie w tablicach?
Gość
$HTTP_POST_VARS jest przestarzale, uzywaj $_POST
isia
Przeczytałam i się załamałam. Z tego co tam jest napisane nie wolno mi użyć czegoś takiego

$tablica[$zmienna]

A większośc funkcji (dynamiczne wyśiwetkanie tabelek itp) mam zrobionych właśnie na bazie takiego odwołania się do elementy w bazie. Chodzi o to, że do pewnych elementów odwołuję się w pętli.
Proszę pomóżcie mi jakoś z tego wybrnąć. Tekst manuala przeniósł mnie do rozdziału parsowanie zmiennych ale jakos nie potrafiię nic wymyślęć.
mike
Cytat(isia @ 13.06.2006, 01:15 ) *
Przeczytałam i się załamałam. Z tego co tam jest napisane nie wolno mi użyć czegoś takiego

$tablica[$zmienna]


Bzdury. Pokaż mi gdzie tam jest tak napisane?
Oczywiście że możesz tak robić.
isia
Cytat(mike_mech @ 13.06.2006, 01:21 ) *
Bzdury. Pokaż mi gdzie tam jest tak napisane?
Oczywiście że możesz tak robić.

Racja - bazdury.
Po prostu byłam już zakręcona jak słoik... blinksmiley.gif

ALE
dlaczego mam błędy po włączeniu
  1. <?php
  2. ?>

Notice: Undefined offset: 0 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
Notice: Undefined offset: 1 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
Notice: Undefined offset: 2 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
dla fragmentu kodu
  1. <?php
  2. $plik = @fopen($file,"r") or die($jez['uwaga']);
  3. while (!(feof($plik)))
  4. {
  5. $zawartosc[$i] .= iso(nl2br(fgets($plik, 2048))); // błąd questionmark.gif?
  6. $i++;
  7. }
  8. fclose($plik);
  9. ?>


będę wdzięczna za pomoc..
isia
dr_bonzo
Bo nie masz zdefiniowanej wartosci dla $zawartosc[ 0 ], 1, 2...
Zamiast
$zawartosc[$i] .= iso(...
Daj
$zawartosc[$i] = iso(... (bez kropki, bo $zawartosc[$i] przeciez nie istnieje jeszcze, a .= jest rowne
$zawartosc[$i] = $zawartosc[$i] . iso(...
isia
Dzięki ...
to pozwolę sobie na jeszcze jedno pytanie. Poniżej fragment skryptu:
  1. <?php
  2. if (!$Gstr) {
  3. if ($linie <= $limit) { $limit = $linie; }
  4. for ($i = 0; $i <= $limit; $i++) { 
  5.  $podzialOK = strrpos($zawartosc[$i], "|"); //****
  6.  if ($podzialOK <> 0) { 
  7. $podzial = split("|",$zawartosc[$i]);
  8. if(IsSet($podzial['0'])) { $tytul = iso($podzial['0']); }  
  9. ..............
  10. if ($uri <> '')  { print "cos tam"; }
  11.  } else { print "<DIV class="txt">".$zawartosc[$i]."</DIV>"; } ///****
  12.  } // end of for $i
  13. }
  14. ?>

W miejscu gdzie jest //**** wywala błąd:

Notice: Undefined offset: 8 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 377
Notice: Undefined offset: 8 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 387

nie wiem o co chodzi - przecież w tej samej funkcji powyżej definiuję $zawartosc[$i] questionmark.gif?
dr_bonzo
Nie widze nigdzie wyzej (w tym ostatnim kodzie, mowisz o poprzednich postach??) $zawartosc[ $i ] = ....costam...

Daj
print_r( $zawartosc );
przed ta linia z bledem, ale wewnatrz bloku else {}

Zacznij poprawnie formatowac kod (jest art. na php.pl) to bedzie czytelniejszy.
Gość
Wstawiłam - wyświetla zawartość tablicy ładnie
Array ( [0] => pierszy wiersz
[1] => drugi wiersz
[2] => trzeci wiersz
itd.
a błąd dalej wywala.
nospor
Cytat
itd.
smile.gif a zauwazyles aby te itd. doszlo do indexu nr. 8 ? bo raczej nie.
Twoja petla powinna byc nie taka:
  1. <?php
  2. for ($i = 0; $i <= $limit; $i++) {
  3. ?>

a taka
  1. <?php
  2. for ($i = 0; $i < $limit; $i++) {
  3. ?>

skoro $limit to liczba linii i numerujesz je od 0, to ostani index to $limit-1
isia
nospor
padam do nóg - działa... no to sprawdzam dalej!!!!!

tylko jeszcze:

Już się zupełnie poplątałam w gąszczu artykułów na temat tablic.

Czy definicja tablicy:
$tablica[0] = ...
$tablica[1] = ...
$tablica[2] = ...
jest ok czy powinno być:
$tablica['0'] = ...
$tablica['1'] = ...
$tablica['2'] = ...

bo też mi wywalało błędy.
nospor
nie mialo prawa ci wywalac bledow. pewnie cos masz zle (czytaj: nie masz takich indexow w tablicy) winksmiley.jpg

indexy liczbowe sa traktowane rownowaznie nie wazne czy sa w ciapkach czy nie:
  1. <?php
  2. $arr = array('1' => 'cos1','2' => 'cos2');
  3. echo $arr[1]; //cos1
  4. echo $arr['1']; //cos1
  5.  
  6.  
  7. $arr = array('1' => 'cos1','2' => 'cos2', 1 => 'cos3');
  8. echo $arr[1]; //cos3
  9. echo $arr['1']; //cos3
  10. //gdyz index 1 nadpisze index '1'
  11. ?>


Cytat
Już się zupełnie poplątałam w gąszczu artykułów na temat tablic.
bo nie czyta sie artykulow a manual
http://pl.php.net/manual/pl/language.types.array.php
Cytat
$zmiany = array( 10 // klucz = 0
, 5 => 6
, 3 => 7
, 'a' => 4
, 11 // klucz = 6 (najwyższy indeks całkowity był 5)
, '8' => 2 // klucz = 8 (całkowity!)
, '02' => 77 // klucz = '02'
, 0 => 12 // wartość 10 będzie nadpisana przez 12
);
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.