Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pierwsze litery alfabetu
Forum PHP.pl > Forum > Przedszkole
@rtur
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]';

Pyton_000
Coś w stylu
  1. SELECT DISTINCT SUBSTRING(pole, 1,1) FROM tabela;
@rtur
smile.gif Dzięki, o to mi chodziło.
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.