Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Pierwsze litery alfabetu
@rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


Witam.

1. Chciałbym zrobić na stronie podział alfabetyczny, zrobiłem prostą funkcje która wyświetla alfabet z linkami do podstron:
  1. function alfabet() {
  2. $alfabet=array('0-9','A','Ą','B','C','Ć','D','E','Ę','F','G','H','I','J','K','L','Ł','M','N','Ń','O','Ó','P','Q','R','S','T','U','W','V','X','Y','Z','Ź','Ż');
  3. $numItems = count($alfabet);
  4. $ial = 0;
  5. echo '<div class=\'alfabet\'>';
  6. foreach ($alfabet as $key => $litera) {
  7. if(++$ial === $numItems) {
  8. echo '<span><a href=\'?litera='.$litera.'\'>'.$litera.'</a></span>'; // ostatni element
  9. } else {
  10. echo '<span><a href=\'?litera='.$litera.'\'>'.$litera.'</a></span>|';
  11. }
  12. }
  13. echo '</div>';
  14. }


Ale nie koniecznie potrzebuje wyświetlać listę wszystkich liter alfabetu, wystarczy tylko te dla których rekordy są w bazie danych, jakim zapytaniem pobrać wszystkie pierwsze litery alfabetu z tabeli żebym mógł je wrzucić do tablicy $alfabet?

2. Czego użyć w klauzuli where dla znalezienia wszystkich rekordów zaczynających się cyfrą? Mógłbym użyć
  1. WHERE pole LIKE '0%' OR pole LIKE '1%' OR pole LIKE '2%'.... OR pole LIKE '9%'
ale może jest prostszy sposób?

na 2 pytanie już znalazłem odpowiedź chyba, użycie regexp rozwiąże problem:
  1. SELECT * FROM tabela WHERE pole REGEXP '^[^0-9]';

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Coś w stylu
  1. SELECT DISTINCT SUBSTRING(pole, 1,1) FROM tabela;
Go to the top of the page
+Quote Post
@rtur
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


(IMG:style_emoticons/default/smile.gif) Dzięki, o to mi chodziło.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 18:32