Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienna poza pętlą
Manderigon
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.04.2011

Ostrzeżenie: (0%)
-----


Witam.
Mam zmienna tablicowa umieszczona w pętli for i chciałbym, aby ta zmienna mogła zostać użyta poza tą pętlą. Jak tego dokonać? Próbowałem zrobić już za pomocą sesji, lecz nie bardzo chciała współpracować.
Pozdrawiam.
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Ale gdzie masz problem? Pokaż kod.
Go to the top of the page
+Quote Post
Manderigon
post
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.04.2011

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. .....
  4.  
  5.  
  6. preg_match_all("#Woźniak Teresa<br>Licz do średniej: tak<br>Waga: ([1-6])<br>#",$waga, $biologia_wg);
  7. preg_match_all('#<h3>Biologia</h3><pclass="foldText">Okres1,oceny:([1-9.,]+)<strong>#',$zrodlo, $biologia_oc);
  8.  
  9.  
  10. echo 'Biologia: '; for( $x = 1; $x <= 15; $x++ ){
  11. echo $biologia_oc[$x][0];
  12. }
  13.  
  14. echo 'Wagi: '; for( $x = 1; $x <= 10; $x++ ){
  15. echo $biologia_wg[1][$x];
  16. }
  17.  
  18. echo $biologia_wg[1][$x]; <<<<<<<<<<<<<<<<<<<< NIE DZIAŁA
  19.  
  20. ?>


Co mam zrobic, aby zaznaczona zmienna wyrzucala mi to, co wczesniej w petli?
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




A istnieje $biologia_wg[1][10] ?
Daj var_dump($biologia_wg); i zobacz co tam masz.
Go to the top of the page
+Quote Post
Manderigon
post
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.04.2011

Ostrzeżenie: (0%)
-----


A czy to ma duże znaczenie? Wylicze ilość elementów w tablicy i napisze tutaj.

  1. <?php
  2.  
  3. ......
  4.  
  5. $waga = file_get_contents('http://student.2lo.pl/~lanik.bartosz/grades2.htm');
  6. preg_match_all("#Woźniak Teresa<br>Licz do średniej: tak<br>Waga: ([1-6])<br>#",$waga, $biologia_wg);
  7. preg_match_all('#<h3>Biologia</h3><pclass="foldText">Okres1,oceny:([1-9.,]+)<strong>#',$zrodlo, $biologia_oc);
  8.  
  9. $biologia_wg_ilosc = count($biologia_wg[1]);
  10.  
  11. echo 'Biologia: '; for( $x = 1; $x <= 15; $x++ ){
  12. echo $biologia_oc[$x][0];
  13. }
  14.  
  15. echo 'Wagi: '; for( $x = 1; $x <= $biologia_wg_ilosc; $x++ ){
  16. echo $biologia_wg[1][$x];
  17. $_SESSION['biol_wg_sesja'] = $biologia_wg[1][$x];
  18. }
  19.  
  20. echo $_SESSION['biol_wg_sesja'];


Nie kminie, dlaczego nie wyświetla mi zmiennej sesyjnej.
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Opisz swój projekt, co chcesz dokładnie osiągnąć, bo Twój kod jest do wyrzucenia.
Go to the top of the page
+Quote Post
Manderigon
post
Post #7





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.04.2011

Ostrzeżenie: (0%)
-----


Moim celem jest wyliczenie średniej ocen każdego przedmiotu z dziennika librus.
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Przede wszystkim musisz zautomatyzować to, żeby automatycznie czytało dowolną liczbę przedmiotów, dowolną liczbę ocen i dowolną liczbę wag.

Tak jak napisałem, zalecam przepisać ten kod, bo jest naprawdę paskudny. Ale odpowiadając na Twoje pytanie, sesja jest kompletnie bez sensu w tym przypadku. Zauważ, że chcesz po prostu się odwoływać do ostatniego elementu, co wystarczy zrobić tak:
  1. $biologia_wg[1][$biologia_wg_ilosc]

W kodzie masz mnóstwo błędów, więc moja odpowiedź nie gwarantuje, że otrzymasz prawidłowy wynik.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:05