Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pobranie rekordów alfabetycznie
tenloginjestzaje...
post 19.04.2016, 20:03:23
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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.

Ten post edytował tenloginjestzajety 19.04.2016, 20:04:08


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
rad11
post 19.04.2016, 21:40:24
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


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

Ten post edytował rad11 19.04.2016, 21:51:44
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 19.04.2016, 22:48:54
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


bardzo dziękuje

Ten post edytował tenloginjestzajety 20.04.2016, 00:08:38


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 02:37