Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Elementy na daną literę
kamilos12
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 20.03.2010

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
chmiello
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 5
Dołączył: 12.07.2010

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


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. }
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kamilos12
post
Post #4





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 20.03.2010

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


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

Go to the top of the page
+Quote Post
chmiello
post
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 5
Dołączył: 12.07.2010

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


  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. }
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: 21.08.2025 - 19:33