Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wykonanie dwóch pętli foreach i for
Forum PHP.pl > Forum > Przedszkole
Czapla
Piszę prostą klasę do obsługi widoku. Chodzi oto że po wrzuceniu 400 plików html czy php, zostaną wygenerowane [na podstawie ścieżki] linki.
Ścieżki przerobię potem na nazwy zakładek za pomocą wyrażeń regularnych. Każdy link posiada swój wygenerowany numer. Stroan jest wyświetlana za pomocą tego parametru w case'ie.

Narazie napisałem tak, wersja wstępna wymaga optymalizacji smile.gif
  1. <?php
  2. class tworzWidok
  3. {
  4.  function pokazMenu()
  5.   {
  6.    foreach (glob("./strona/*.php") as $np_nazwa_pliku)
  7.    {
  8.     $ls_liczba_stron = count($np_nazwa_pliku);
  9.      for ($i = 1; $i <= $ls_liczba_stron; $i++)
  10.      {
  11.        print '<a href=index.php?strona='.$i.'>'.$np_nazwa_pliku.'</a>';
  12.      }
  13.    }
  14.  }
  15.  
  16.  function pokazStrona($s_strona)
  17.   {
  18.    $ls_liczba_stron = count(glob("./strona/*.php"));
  19.    for ($j = 1; $j <= ls_liczba_stron; $j++)
  20.     {
  21.      switch ($s_strona) {
  22.        case $j:
  23.         include ("./strona/".$s_strona.".php");
  24.         break;
  25.      
  26.        //default:
  27.        //print "Brak strony o podanej nazwie";
  28.       }
  29.     }
  30.   }
  31. }
  32. ?>


Problem leży w metodzie tworzWidok rozbijam tablice z funkcji glob na części i zapisuje do zmiennej. Zliczam element z tablicy za pomocą count() zapisuje do innej zmiennej i wykorzystuje w pętli for aby wygenerować nr w przedziale od 1 do n dla każdego linku. Problem jest taki że o ile wygenerowane zostają prawidłowo nawy do poszczególnych plików to już ścieżka zawsze posiada numer 1. Każdy z linków ma adres: localhost/index.php?strona=1 W jaki sposób zrobić aby każdy z linków miał swój wygenerowany numer?

Mam nadzieje że dobrze się wysłowiłem.

Pozdrawiam
hiszpanespaniol
z tego co widzę, to kazdy plik zeruje Ci wartość np_nazwa_pliku.

chyba powinno być tak:

  1. <?php
  2. function pokazMenu()
  3.   {
  4.   $np_nazwa_pliku = array();
  5.    foreach (glob("./strona/*.php") as $np)
  6.    {
  7.        $np_nazwa_pliku[] = $np;
  8.    }
  9.    $ls_liczba_stron = count($np_nazwa_pliku);
  10.    for ($i = 1; $i <= $ls_liczba_stron; $i++)
  11.        {
  12.            print '<a href=index.php?strona='.$i.'>'.$np_nazwa_pliku.'</a>';
  13.        }
  14.  }
  15. ?>


coś w tym stylu na pewo
Czapla
Tablica jest dobra

print_r()
  1. <?php
  2. Array ( [0] => ./strona/1.php [1] => ./strona/2.php [2] => ./strona/3.php )
  3. ?>


var_dump()
  1. <?php
  2. array(3) { [0]=> string(14) "./strona/1.php" [1]=> string(14) "./strona/2.php" [2]=> string(14) "./strona/3.php" }
  3. ?>


ale teraz wyświetla mi na ekranie zamiast nazw linków słowa "Array"

Pozdrawiam
hiszpanespaniol
  1. <?php
  2. print '<a href=index.php?strona='.$i.'>'.$np_nazwa_pliku[$i].'</a>';
  3. ?>
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.