Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Elementy na daną literę
Forum PHP.pl > Forum > Przedszkole
kamilos12
Witam, mam tabelkę z produktami: np. ananas, kiwi, banan, brzoskwinia itd.
Potrzebuje wyświetlić te produkty w taki sposób:

A:
- ananas
B:
- banan
- brzoskwinia
K:
- kiwi

Jak widać pomijam litery na które nie zaczyna się żaden produkt i wyświetlam w kolejności alfabetycznej.

Proszę o pomoc w rozwiązaniu problemu, z góry dziękuje.
chmiello
Coś takiego powinno zadziałać:

  1. $lista = array('ananas', 'kiwi', 'banan', 'brzoskwinia');
  2.  
  3. $sort = array();
  4. foreach($lista as $el){
  5. $sort[$el[0]][] = $el;
  6. }
  7. ksort($sort);
  8.  
  9. foreach($sort as $key => $value){
  10. echo strtoupper($key).':<br />';
  11. foreach($value as $one){
  12. echo '- '.$one.'<br />';
  13. }
  14. }
b4rt3kk
Cytat(kamilos12 @ 31.07.2013, 14:16:54 ) *
Witam, mam tabelkę z produktami: np. ananas, kiwi, banan, brzoskwinia itd.
Potrzebuje wyświetlić te produkty w taki sposób:

A:
- ananas
B:
- banan
- brzoskwinia
K:
- kiwi

Jak widać pomijam litery na które nie zaczyna się żaden produkt i wyświetlam w kolejności alfabetycznej.

Proszę o pomoc w rozwiązaniu problemu, z góry dziękuje.


Jeśli problem tyczy się rzeczywiście MySQL (dałeś taki tag przy temacie) - to wystarczy dodać ORDER BY:

  1. SELECT * FROM tabela ORDER BY nazwa_produktu
kamilos12
Dzięki, działa bardzo dobrze wink.gif Zastanawiam się tylko jak zrobić tak żeby np. elementy zaczynające się od cyfr wyświetlić w jednej kategorii np. 0-9? wink.gif

Cytat(chmiello @ 31.07.2013, 14:22:25 ) *
Coś takiego powinno zadziałać:

  1. $lista = array('ananas', 'kiwi', 'banan', 'brzoskwinia');
  2.  
  3. $sort = array();
  4. foreach($lista as $el){
  5. $sort[$el[0]][] = $el;
  6. }
  7. ksort($sort);
  8.  
  9. foreach($sort as $key => $value){
  10. echo strtoupper($key).':<br />';
  11. foreach($value as $one){
  12. echo '- '.$one.'<br />';
  13. }
  14. }

chmiello
  1. $lista = array('ananas', 'kiwi', 'banan', 'brzoskwinia','25test','35test');
  2.  
  3. $sort = array();
  4. foreach($lista as $el){
  5. if(intval($el[0]))
  6. $sort['0-9'][] = $el;
  7. else
  8. $sort[$el[0]][] = $el;
  9. }
  10. ksort($sort);
  11.  
  12. foreach($sort as $key => $value){
  13. echo strtoupper($key).':<br />';
  14. foreach($value as $one){
  15. echo '- '.$one.'<br />';
  16. }
  17. }
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.