Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wyświetlenie określonej ilości wyników na linijkę
konradkw
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


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. ?>
Go to the top of the page
+Quote Post
ethann
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 18
Dołączył: 7.04.2012

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


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ę.

Ten post edytował ethann 8.04.2012, 22:36:59
Go to the top of the page
+Quote Post
konradkw
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


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ę.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 20:31