Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] tasowanie, sortowanie banerow
Forum PHP.pl > Forum > Przedszkole
blown
Witam,
mam pewien problem z przetasowaniem. Ponieważ napisałem sobie skrypt który wyświetla mi np 20 bannerow które chce przetasować po każdym odświeżeniu strony żeby zamieniły się pozycjami. Próbuje opcją shuffle ale jakoś niechce mi to wyjść ;/ bardzo był bym wdzieczny gdyby ktos mi wytlumaczył jak to zrobic.

Kod
$bannery = array(print '<a href="'.stripslashes($row["Link strony"]) .'"target="_blank">'. '<img src="'.stripslashes($row["baner_url"]) .'"border="0"/>'.'</a>');

shuffle($bannery);
Spawnm
co robi print w array?
kolejne wartości/banery oddzielaj przecinkami
blown
Nawet jeśli zrobie tak:

Kod
$bannery = array("<a href="'.stripslashes($row["Link strony"]) .'"target="_blank">'. '<img src="'.stripslashes($row["baner_url"]) .'"border="0"/>'.'</a>");

shuffle($bannery);


to nic mi sie nie wyswietla
wookieb
No a co ma ci sie wyswietlac skoro nic nie pokazujesz?
http://php.net/shuffle

Czy widzisz zeby ta funkcja coś wyświetlała?
użyj http://php.net/foreach a potem już chyba bedziesz wiedział co zrobić
blown
Wszystkie bannery mi wyświetla ale niechce ich tasować.

Kod
$linki = array('<a href="'.stripslashes($row["Link strony"]).'"target="_blank">'.'<img src="'.stripslashes($row["baner_url"]).'"border="0"/>'.'</a>');
shuffle($linki);
foreach ($linki as $baner)
{ echo "$baner"; }


Ta funkcja wyświetla mi wszystkie banery które mam w bazie:

Kod
<a href="'.stripslashes($row["Link strony"]).'"target="_blank">'.'<img src="'.stripslashes($row["baner_url"]).'"border="0"/>'.'</a>


teraz juz w sumie nie wiem czemu mi nie tasuje.
erix
Jak ma tasować, skoro w tablicy masz tylko jeden element?
blown
no ale ten element wyswietla mi wszystkie bannery ktore chce potasowac.
erix
Nie rozumiesz. shuffle" title="Zobacz w manualu PHP" target="_manual tasuje między elementami tablicy. Przecież jednego elementu miejscami nie zamienisz...

Poza tym, lepiej użyć array_rand" title="Zobacz w manualu PHP" target="_manual, który zwraca losowy wpis, nie marnując niepotrzebnie czasu na tasowanie całej tablicy.
_olo_1984
jeżeli uda ci się zapytaniem wyciągnąć wszystkie banery i linki do nich z bazy i wsadzić to do takiej tablicy:
  1. <?php
  2. $banery = array(
  3. 0 => array('link_strony' => 'link_1', 'baner_url' => 'url_1'),
  4. 1 => array('link_strony' => 'link_2', 'baner_url' => 'url_2'),
  5. 2 => array('link_strony' => 'link_3', 'baner_url' => 'url_3'),
  6. 3 => array('link_strony' => 'link_4', 'baner_url' => 'url_4'),
  7. 4 => array('link_strony' => 'link_5', 'baner_url' => 'url_5')
  8. );
  9. ?>


to by je posortować i wyświetlić wystarczą opdane przez kolege wyżej funkcje:
  1. <?php
  2. shuffle($banery);
  3.  
  4. foreach($banery as $baner)
  5. {
  6.    echo '<a href="'.stripslashes($baner['link_strony']).'" target="_blank"> <img src="'.stripslashes($baner['baner_url']).' "border="0"/> </a>';
  7. }
  8. ?>


a ty masz jeden wpis w tablicy który chcesz tasować. Pokaż zapytanie, oraz to co ono zwraca
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.