Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Witam,

Problem możliwe, że trywialny, ale nie umiem do niego podejść logicznie. Mam dane zawierające wyniki z bazy danych. Składają się one z ID i adresu do odnalezienia URL obrazków. Mają one byś listą po 10 wyników na jedną kolumnę, oczywiście - nie chcę korzystać z tabel do takich danych. Parsowane dane nie chcę robić w PHP i logice, ponieważ nie do końca ma to sens. Jak to ma wyglądać? Opiszę poniżej :-)

Załóżmy, że mamy 35 wyników. Po 10 wynikach powinno tworzyć nową listę obok, początek powinien być od lewej strony w kierunku prawym. Problem mam z tym faktem, że nie wiem jak w szablonach parsować licznik - jeżeli wynik równa się 10, zamknij listę i rozpocznij od nowa zliczanie, czyli - jak zapisać zmienną?

Pozdrawiam,

Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

  • Manager
Opublikowano

Largo: od pewnego czasu zauważyłem, że bardzo lubisz utrudniać sobie życie. :(

Po stronie kodu stwórz trzy elementy w tablicy typu tablicowego, a potem elegancko je przetwórz w bicie skina ( pętla dla tablic i zagnieżdżona w niej pętla dla elementów ).

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Largo: od pewnego czasu zauważyłem, że bardzo lubisz utrudniać sobie życie. :(

Po stronie kodu stwórz trzy elementy w tablicy typu tablicowego, a potem elegancko je przetwórz w bicie skina ( pętla dla tablic i zagnieżdżona w niej pętla dla elementów ).

Witaj,

Jak tworzę 3 elementy? Zakładając, że będzie mniej niż 40 elementów, a zakładając, że ja nie wiem ile będzie elementów? Możesz mi to symbolicznie zapisać, ponieważ nie do końca to rozumiem.

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

  • Manager
Opublikowano

Nie ma opcji dodania licznika do pętli foreach w skinie i dlatego musisz zrobić to po stronie PHP. Tam licznik potrafisz dodać, prawda? :(

To może nie symbolicznie, a na gotowe:

$wieleElementow = range( 'a', 'z');


$i 			= 1; // Licznik do pętli
$k			= 1; // Licznik do drugiej pętli
$sep		= 10; // Po ile elementów 'parsować'
$tab 		= array(); // Tablica na elementy

foreach( $wieleElementow as $el )
{
if( $i <= $sep )
{
	$tab[$k][] = $el;
}
else
{
	$k++;
	$sep *= $k;
}

$i++;

}

print_r( $tab );

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

Nie ma opcji dodania licznika do pętli foreach w skinie i dlatego musisz zrobić to po stronie PHP. Tam licznik potrafisz dodać, prawda? :)

To może nie symbolicznie, a na gotowe:

$wieleElementow = range( 'a', 'z');


$i 			= 1; // Licznik do pętli
$k			= 1; // Licznik do drugiej pętli
$sep		= 10; // Po ile elementów 'parsować'
$tab 		= array(); // Tablica na elementy

foreach( $wieleElementow as $el )
{
if( $i <= $sep )
{
	$tab[$k][] = $el;
}
else
{
	$k++;
	$sep *= $k;
}

$i++;

}

print_r( $tab );

Witaj,

Heh, nie pomyślałem o drugiej pętli, chciałem to w jednej zamknąć, muszę się jeszcze wiele uczyć widać... Ale Twojego kodu nie do końca rozumiem i robi błąd. Po tworzeniu nowego indeksu, ucina kolejny między tworzeniem nowego indeksu tablicy. Nie rozumiem dlaczego to robi. Mógłbyś to sprawdzić

PS. Już wiem dlaczego tak robi - w każdy miejscu powinieneś elementy dodawać do nowej tablicy - tam tego nie robisz, dlatego kod gubi ten element. A drugi, to dziwny sposób z separatorem. On nie ma się zwiększać :-) Separator wynosi 10 i każda nowa lista ma mieć 10 elementów, a nie mnożyć przez indeks :-)

Pozdrawiam,

Largo

Edytowane przez Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

  • Manager
Opublikowano

To może Ty źle robisz. :)

Trochę źle napisałem, poprawiona wersja:

<?php
$wieleElementow = range( 'a', 'z');


$i              = 0; // Licznik do pętli
$k              = 0; // Licznik do drugiej pętli
$sep            = 5; // Po ile elementów 'parsować'
$tab            = array(); // Tablica na elementy
$sep2 			= 0;

foreach( $wieleElementow as $el )
{
       if( $i < $sep2 )
       {
               $tab[$k][] = $el;
       }
       else
       {          
			$k++;
               $sep2 = $k * $sep;      
               $tab[$k][] = $el;
       }

       $i++;
}

print_r( $tab );
?>

Wynik:

Array ( 
[1] => Array ( [0] => a [1] => b [2] => c [3] => d [4] => e ) 
[2] => Array ( [0] => f [1] => g [2] => h [3] => i [4] => j ) 
[3] => Array ( [0] => k [1] => l [2] => m [3] => n [4] => o ) 
[4] => Array ( [0] => p [1] => q [2] => r [3] => s [4] => t ) 
[5] => Array ( [0] => u [1] => v [2] => w [3] => x [4] => y ) 
[6] => Array ( [0] => z ) 

) 

Miodzio. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.