Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobranie rekordów alfabetycznie
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam czy jest gotowa funkcja, która wyświetli rekordy alfabetycznie wraz z literą alfabetu.

A:
Anna
Ala

B:
Bartek
Bożena

itd.

  1. $query = mysql_query("SELECT * FROM `prywatne` WHERE `miasta`);
  2. while($row = mysql_fetch_assoc($query)){
  3. $miasta = $row['miasta'];
  4. }


Dziękuje za nakierowanie.
rad11
Na szybko i mało wydajnie możesz zrobic tak że robisz pętlę w PHP od A do Z np


  1. for($i="a";$i<="z";$i++)
  2. $iUpper = uppercase($i);
  3. Tutaj tworzysz zapytanie gdzie LIKE "$i%" OR LIKE "$iUpper%"
  4.  
  5. Dodajesz do tablicy resultat
  6.  
  7. $data[$iUpper] = resultat z bazy


W rezultacie dostaniesz tablice gdzie kluczem jest np A => lista zaczynających się danych na "a"

A jeżeli będziesz chciał zoptymalizować do jednego zapytania to poprostu tworzysz tablicę

  1. $letters = array();
  2.  
  3. for($i="a";$i<="z";$i++)
  4.  
  5. $letters["nazwa_kolumny LIKE " . uppercase($i) . "%"] = "nazwa_kolumny LIKE " . $i . "%";
  6.  
  7. $lettersUppercase = implode("OR", array_keys($letters));
  8. $lettersLowercase = implode("OR", array_values($letters));
  9.  
  10. $likes = $letersUppercase . " OR " . $letterLowercase;
  11.  
  12.  
  13. Tworzysz zapytanie i w pętli od A do Z sprawdzając pierwszą literę (male i duże) segregujesz do nowej tablicy tak jak wyzej.
  14.  
  15.  
  16.  


Powinno działać nie testowalem
tenloginjestzajety
bardzo dziękuje
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.