Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlenie określonej ilości wyników na linijkę
Forum PHP.pl > Forum > Przedszkole
konradkw
Witajcie.


Mam tutaj taki mały skrypcik który wyświetla mi kategorie wraz z ilością wpisów w danej kategorii. powczas wyświetlania pokazują się one jedna pod drugą ale chciałbym aby pokazywały się jedna obok drugiej (co jest proste) a nastepnie powiedzmy co trzecie wyświetlenie chciałbym wstawić <br /> tylko nie bardzo mam pomysł jak.. może coś z pętlą for? Proszę o jakąś podpowiedź.

  1. <?php
  2. $ko = mysql_query ("SELECT * FROM `kategoriestron`");
  3. while ($kko = mysql_fetch_array($ko, MYSQL_ASSOC))
  4. {
  5. $ktora = $kko['kategoria'];
  6. $iwk = mysql_query("SELECT * FROM `katalogstron` WHERE `kategoria` = '$ktora'");
  7. $twk = mysql_num_rows($iwk); echo " ";
  8. echo "<a href=\"index.php?txt=katalogstron&str=kategorie&pokaz=";
  9. echo $ktora; echo "\"><b>"; echo $ktora; echo "("; echo $twk; echo ") </b></a><br />";
  10. }
  11. ?>
ethann
Co trzeci wpis ma być <br />, więc przyda Ci się jakiś licznik, który określi, który element aktualnie wyświetlasz.
Przykładowo tworzysz sobie zmienną $i przed pętlą while, która będzie Twoim licznikiem. Początkową wartość ustawiasz na 0.
  1. $i = 0;

Następnie wewnątrz pętli wstawiasz sobie na początku (zaraz po klamrze) inkrementację tej zmiennej.
  1. $i++;

W ten oto sposób masz określone, który element aktualnie przetwarzasz. Pierwsze okrążenie pętli, $i wynosi 1, czyli pierwszy element przetwarzany. W ten sposób możesz na końcu całego wyświetlania danych (wewnątrz pętli) dać warunek. Jeśli zmienna $i jest podzielna przez 3 to wiadomo, że element jest trzeci w rzędzie i po nim ma być przełamanie linii.
  1. if($i % 3 == 0) echo '<br />';



PS. korzystaj z konkatenacji, albo przynajmniej własności cudzysłowu.
  1. echo "<a href=\"index.php?txt=katalogstron&str=kategorie&pokaz=";
  2. echo $ktora; echo "\"><b>"; echo $ktora; echo "("; echo $twk; echo ") </b></a><br />";

to jest to samo co:
  1. echo "<a href=\"index.php?txt=katalogstron&str=kategorie&pokaz=$ktora\"><b>$ktora($twk) </b></a><br />";

jeśli musisz użyć zmiennej wewnątrz tekstu możesz ją zawrzeć w klamry.
  1. $litera = 'A';
  2. echo "Ciekawe czy {$litera}la ma kota."


ew. konkatenacje + użycie apostrofów:
  1. echo '<a href="index.php?txt=katalogstron&str=kategorie&pokaz='.$ktora.'"><b>'.$ktora.'('.$twk.') </b></a><br />';




#EDIT
Ach pytałeś o użycie pętli for. Tak też jest to dobre rozwiązanie.
zamiast:
  1. while ($kko = mysql_fetch_array($ko, MYSQL_ASSOC))

użyj:
  1. for ($i=1; $kko = mysql_fetch_array($ko, MYSQL_ASSOC); $i++)

W ten sposób definiujesz już przy pętli, licznik i jego inkrementację.
konradkw
Dziękuję! świetna wypowiedź!
tak właśnie kombinowałem mniej więcej ale okazało się to prostsze niż myślałem!
Szacunek za kulturalną wypowiedź!
Jeszcze raz serdecznie dziękuję.
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.