Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]Jak policzyć w bazie wpisy zaczynające się na określoną literę?
-tomii-
post 7.09.2007, 20:29:52
Post #1





Goście







Witam, prosiłbym o pomoc. Załozny ze mam prostą tabele:
  1. CREATE TABLE `ulica` (
  2. `id_ulica` INT(5) NOT NULL AUTO_INCREMENT,
  3. `ulica` VARCHAR(200) NOT NULL,
  4. PRIMARY KEY (`id_ulica`)
  5. );


Chciałbym policzyć w bazie wpisy, ktorych pierwsza litera np. zaczyna się na S. Powiedzmy że mamy kilka ulic które zaczynają się na S. Jak to zrobic? Chodzi mi aby wyświetliło tylko wynik w postaci cyfr ile mamy wpisów pod określoną ulicę.
Go to the top of the page
+Quote Post
Hazel
post 7.09.2007, 20:33:35
Post #2





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


  1. SELECT COUNT (ulica) FROM ulica WHERE ulica LIKE 'S%'


--------------------
Go to the top of the page
+Quote Post
-tomii-
post 7.09.2007, 20:46:06
Post #3





Goście







dziękuje
Go to the top of the page
+Quote Post
-tomii-
post 7.09.2007, 21:57:22
Post #4





Goście







mam jeszcze jedno pytanie - sprobowalem jeszcze na inny sposob:
  1. <?php
  2. $zapytanie = mysql_query ("SELECT * FROM $mysql_tabela WHERE ulica RLIKE '^[a]'") or 
  3. die ("Błąd w zapytaniu");
  4. ?>

czyli ze wyraz ma sie zaczynac na określoną literę - tylko jak mam teraz policzyc ile jest tych wyrazow? winksmiley.jpg
Go to the top of the page
+Quote Post
Hazel
post 7.09.2007, 21:59:42
Post #5





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Jeśli koniecznie chcesz to zrobić z poiomu PHP, to pozostaje Ci funkcja mysql_num_rows()" title="Zobacz w manualu PHP" target="_manual.
Moje zapytanie będzie jednak działać znacznie szybciej.

Ten post edytował Hazel 7.09.2007, 22:00:02


--------------------
Go to the top of the page
+Quote Post
-tomii-
post 7.09.2007, 22:07:07
Post #6





Goście







no wlasnie o to mi chodzilo - czy tak jak zrobilem bedzie dobrze? czy obciazy zdrowo serwer? wynik musze wyswietlic na stronie ...
  1. <?php
  2. $zapytanie = mysql_query ("SELECT * FROM $mysql_tabela WHERE ulica RLIKE '^[a]'") or 
  3. die ("Błąd w zapytaniu");
  4.  
  5. $num_rows = mysql_num_rows($zapytanie);
  6.  
  7. echo"(".$num_rows.") czegoś";
  8. ?>
Go to the top of the page
+Quote Post
Hazel
post 7.09.2007, 22:12:19
Post #7





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


No jedno zapytanie serwera nie obciąży, jeśli masz zamiar to mocno zapętlić i oprócz tego chcesz jeszcze zrobić masę innych rzeczy - słowem, jest to rozbudowana aplikacja, a nie zwykła strona - lepiej zastosuj inne rozwiązanie. Ogólnie RLIKE zabija serwer SQL jeszcze bardziej niż LIKE... Ale jeśli to jedyne zapytanie albo jedno z nielicznych, to oczywiście bez obaw.


--------------------
Go to the top of the page
+Quote Post
-tomii-
post 7.09.2007, 22:14:23
Post #8





Goście







heh no to teraz nie wiem co mam robic winksmiley.jpg bo musze takich zapytan wykonac prawie tyle razy ile mamy liter w alfabecie winksmiley.jpg heh wiec chyba odpadnie ta metoda ...
Go to the top of the page
+Quote Post
Hazel
post 7.09.2007, 22:17:05
Post #9





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


zrób i przetestuj - jeśli szybkośc działania będzie Cię zadowalać, to ok.
Jeśli nie - zastosuj LIKE i liczenie rekordów na poziomie SQLa, czyli funkcję agregującą COUNT.


--------------------
Go to the top of the page
+Quote Post
-tomii-
post 7.09.2007, 22:20:04
Post #10





Goście







u mnie działa ładnie - ale przypuszczam ze jak sie nalozy kilkudziesieciu uzytkownikow i juz tak ladnie nie bedzie działac winksmiley.jpg

dzieki wielkie za pomoc - [} browarek dla ciebie winksmiley.jpg
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.07.2025 - 00:16