Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie alfabetycznie z tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
mdesign
witajcie! problem pewnie banalny, ale nie dla takiego lamera jak ja blink.gif .
otóż:

istnieje tabela "producenci", z kolumną 'nazwa_producenta'.

potrzeba:
pobrać pierwsze litery nazw producentów i wynik wyświetlić na stronie (mógłbym w zasadzie wypisać "z palca" cały alfabet, ale po co robić zamieszanie i wyświetlać puste wyniki, w przypadku gdy nie będzie akurat praducenta np. na literę a?).
po kliknięciu na wynik, czyli pierwszą literę nazwy producenta program powinien zwrócić mi wszystkie rekordy zaczynające się na tę konkretną literę.

rozumiem, że zapytanie na konkretną literę alfabetu (tutaj a):
  1. <?php
  2.  
  3. $query=mysql_query(&#092;"select * from producenci where nazwa_producenta like '%a'\");
  4.  
  5. ?>


muszę przerobić tak, by ostatni parametr był zmienną:
  1. <?php
  2.  
  3. $query=mysql_query(&#092;"select * from producenci where nazwa producenta like '%$pierwsza_litera'\");
  4.  
  5. ?>


i tu mam zgryza, bo za cholerę nie mam pomysłu jak zdefiniować zmienną
  1. <?php
  2. $pierwsza_litera
  3. ?>


po polsku chodzi mi o coś takiego:
1. pobierz nazwy producentów i wyciągnij zeń pierwsze litery
2. po mojemu to wynik wrzuciłbym do tablicy "pierwsze litery".
3. potem zapytaniem (select distinct pierwsze_litery) wyświetliłbym to na stronie, przy okazji definiując wynik jako $pierwsza_litera.

dobrze kombinuję?

dziękuję za pomoc!
mdco
Nie wiem do końca o co Ci chodzi, ale do wyciągnięcia pierwszych liter możesz użyć:
  1. <?php
  2.  
  3. $res=mysql_query(&#092;"SELECT * FROM producenci\");
  4. while($row=mysql_fetch_array($res))
  5.  {
  6. echo $row['nazwa_producenta'][0].&#092;"<br>\";
  7.  }
  8.  
  9. ?>


0 - oznacza pierwszą literę.
SongoQ
  1. <?php
  2. $query=mysql_query(&#092;"select * from producenci where nazwa_producenta like 'a%'\");
  3. ?>


To co zwraca na rekordy gdzie pole zaczyna sie na a

Mozesz odrazu zwrocic sobie uzywane literki, wykorzystaj left
DeyV
Nie jestem pewien, czy dobrze zrozumiałem.

Potrzebujesz zapytanie, które pobierze Ci wszystkie literki z alfabetu, na któe pojawi się jakiś producent?
Jeśli tak - powinno zadziałąć:

  1. SELECT DISTINCT LEFT( nazwa_producenta, 1 ) AS litera
  2. FROM producenci ORDER BY litera


Ewentualnie można dodać UPPER, czyli
  1. DISTINCT UPPER( LEFT( nazwa_producenta, 1 ) )
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.