Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pobieranie alfabetycznie z tabeli, ...ale trochę inaczej niż zwykle
mdesign
post 7.06.2005, 11:55:19
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.06.2005

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


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!
Go to the top of the page
+Quote Post
mdco
post 7.06.2005, 17:39:46
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

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


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ę.


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
SongoQ
post 7.06.2005, 17:50:32
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


  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


--------------------
Go to the top of the page
+Quote Post
DeyV
post 7.06.2005, 20:40:00
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




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 ) )


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
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: 24.05.2025 - 09:31