Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] skomplikowane zapytanie
fredzio90
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


otóż mam ranking, na stronie głównej jest tabelka, w niej jest pole Punkty, punkty są liczone przez pomnożenie średniej oceny przez ilość głosów na daną rzecz.... i chodzi mi o to że jak na innych stornach odczytywać pozycję danej rzeczy, chodzi mi tutaj :

pozycja/ilość wszystkich wpisów.. niewiem czy wytłumaczyłem, ale ktoś na innym forum zaproponował mi tkaie zapytanie:

  1. <?php
  2. $zap_poz = mysql_query("SELECT COUNT(*)+1 FROM (SELECT il_glosow*srednia_ocena FROM $rank_club_tbl WHERE il_glosow*srednia_
    ocena > (SELECT il_glosow*srednia_ocena FROM $rank_club_tbl WHERE nazwa='$id'))"
    );
  3. ?>


lecz niestey nie działa...

w skrócie, odczytywanie z bazy, punktów (śr. głosów * ilość głosów) danego wpisu, segregowanie go od największej ilośći punktów do najmniejszej, i podać aktualną pozycję wpisu

np:

4/242

Ten post edytował fredzio90 13.06.2007, 19:25:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


zapomniałeś o schemacie bazki
Go to the top of the page
+Quote Post
fredzio90
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


  1. CREATE TABLE `ranking_klubow` (
  2. `id` int(8) NOT NULL AUTO_INCREMENT ,
  3. `nazwa` varchar(64) NOT NULL ,
  4. `miejscowosc` varchar(32) NOT NULL DEFAULT '',
  5. `wojewodztwo` varchar(32) NOT NULL DEFAULT '',
  6. `adres` text NOT NULL DEFAULT '',
  7. `kod_pocztowy` varchar(6) NOT NULL DEFAULT '',
  8. `telefon` varchar(25) NOT NULL DEFAULT '',
  9. `fax` varchar(25) NOT NULL DEFAULT '',
  10. `mail` varchar(32) NOT NULL DEFAULT '',
  11. `www` text NOT NULL DEFAULT '',
  12. `opis` varchar(255) NOT NULL DEFAULT '',
  13. `polecamy` int(2) NOT NULL DEFAULT '0',
  14. `typ` varchar(2) NOT NULL DEFAULT '0',
  15. `odslon` int(8) NOT NULL DEFAULT '0',
  16. `srednia_ocena` double(5,2) NOT NULL DEFAULT '0.00',
  17. `il_glosow` int(6) NOT NULL DEFAULT '0',
  18. `ip` varchar(32) NOT NULL DEFAULT '',
  19. `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  20. PRIMARY KEY (`id`)
  21. ) ENGINE = MYISAM ;


proszę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
uli
post
Post #4





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Zapytanie wygląda ok (przynajmniej dla mnie, choć nie jestem aż tak zaawansowany), ale jedna rzecz mnie zastanawia:

  1. WHERE nazwa = '$id'


Co jest Twoim $id? Bo jeśli to naprawdę pole id to powinno być:
  1. WHERE id = '$id'


a jeśli po zmiennej ktora jest nazwą:
  1. WHERE nazwa = '$nazwa'


Ten post edytował uli 14.06.2007, 07:05:09
Go to the top of the page
+Quote Post
Darti
post
Post #5





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. SELECT COUNT(*)+1 FROM ( (SELECT il_glosow*srednia_ocena FROM ranking_klubow WHERE il_glosow*srednia_ocena >
  2. (SELECT il_glosow*srednia_ocena FROM ranking_klubow WHERE nazwa='1'))) AS B
Go to the top of the page
+Quote Post
fredzio90
post
Post #6





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


moij adres wygląda tak:

costamcostam.php?cmd=pokaz&id=NAZWA

nie numerek tylko nazwa danego wpisu, lepiej indexowane przez google ;P

PS. te zapytanie co podałęś dałem tak:

  1. <?php
  2. $zap_poz = mysql_query("SELECT COUNT(*)+1 FROM ( (SELECT il_glosow*srednia_ocena FROM ranking_klubow WHERE il_glosow*srednia_
    ocena > (SELECT il_glosow*srednia_ocena FROM ranking_klubow WHERE nazwa='$id'))) AS B"
    );
  3. ?>

i dałem to w echo... iu pokazazuje: Resource id #30 a id jest woogule inny
Go to the top of the page
+Quote Post
Darti
post
Post #7





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(fredzio90 @ 14.06.2007, 10:12:53 ) *
w echo... iu pokazazuje: Resource id #30 a id jest woogule inny


bo masz dac:
  1. <?php
  2. $ilosc = mysql_fetch_array($zap_poz);
  3. echo $ilosc[0];
  4. ?>
Go to the top of the page
+Quote Post
fredzio90
post
Post #8





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


dziękuje bardzo, oczywiście działa (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 19:11