Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Wstawianie "liter" pomiędzy wyniki, <ul> w stylu spisu alfabetycznego
barat
post
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 19.05.2007

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


Witam.

Mam mały problem ... otoż pobieram sobie artykuły za pomocą zapytania:

  1. SELECT * FROM `artykuly` WHERE SUBSTR(`nazwa`, 1,1) BETWEEN 'a' AND 'd' ORDER BY `nazwa` ASC;


zakres a-d jest przykładowy ... (docelowo będą to A-D, E-H, I-L, M-P, Q-W, X-Z)

Wszystko działa ładnie, wybiera mi to co trzeba, mogę potem sobie zrobić z pobranych wierszy listę <ul>

W zasadzie mógłbym na tym poprzestać (w końcu mam listę z danym zakresem liter posortowaną alfabetycznie), ale wpadł mi do głowy pewien pomysł.

Aby lista była w stylu:

  1. <h3>A</h3>
  2. <ul>
  3. <li>Tytuły na A</li>
  4. ...
  5. </ul>
  6. <h3>B</h3>
  7. <ul>
  8. <li>Tytuły na B</li>
  9. ...
  10. </ul>
  11. <h3>C</h3>
  12. <ul>
  13. <li>Tytuły na C</li>
  14. ...
  15. </ul>
  16. <h3>D</h3>
  17. <ul>
  18. <li>Tytuły na D</li>
  19. ...
  20. </ul>


Czyli potrzebuję jakiegoś sposobu, by podczas wykonywania całej pętli "wyczuć" kiedy zaczyna się nowa litera i wtedy dodatkowo zrobić jakieś echo rodzaju:

  1. <?php
  2. echo '</ul><h3>'.$litera.'</h3><ul>'
  3. ?>


Robił ktoś coś takiego i ma gotowe rozwiązanie ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ndx
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 6
Dołączył: 11.11.2005

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


  1. <ul>
  2. <?php foreach($artykuly as $row ):?>
  3. <?php if($last != mb_strtolower($row->nazwa[0])): ?>
  4. </ul><h3><?php echo mb_strtolower($row->nazwa[0]); ?></h3><ul>
  5. <?php endif; ?>
  6.   <li><a href="artykul,<?php echo $row->id.','.url::title($row->nazwa, '-'); ?>.html" title="<?php echo html::specialchars($row->nazwa); ?>"><?= $row->nazwa ?></a></li>
  7. <?php $last = mb_strtolower($row->nazwa[0]); ?>
  8. <?php endforeach; ?>
  9. </ul>


Ten post edytował ndx 18.05.2009, 11:49:38
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 2.10.2025 - 22:11