Cześć, mam mały problem.
Kombinuje i nie mam pojęcia, jak zliczyć głosy w ankiecie.
W ankiecie na sztywno ustawione jest 5 rzeczy, na które można głosować, głos można oddawać raz na miesiąc. Głosy zapisuje w takiej tabeli:
  1. CREATE TABLE IF NOT EXISTS `glosowanie` (
  2. `glosowanie_id` int(5) NOT NULL AUTO_INCREMENT,
  3. `glosowanie_user_id` int(5) NOT NULL,
  4. `utwory_id` int(5) NOT NULL,
  5. `glosowanie_data` date NOT NULL,
  6. PRIMARY KEY (`glosowanie_id`)
  7. )

Chodzi o to, aby wyciągnąć stąd liczbę głosów na poszczególne utwory z poszczególnej ankiety. Przynależność do poszczególnej ankiety, mam zapisaną w innej tabeli:
  1. CREATE TABLE IF NOT EXISTS `utwory` (
  2. `utwory_id` int(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `utwory_nazwa` text COLLATE utf8_polish_ci NOT NULL,
  4. `ranking_id` int(5) NOT NULL,
  5. PRIMARY KEY (`utwory_id`)
  6. )

W skrócie, chcę wyciągnąć z tabeli glosowanie liczbę głosów w kolejności od największej do najmniejszej, z warunkiem, że głosy te muszą należeć do tej samej ankiety (tabela utwory).

Mam nadzieję, że zrozumiale to przekazałem tongue.gif
Czekam na podpowiedzi wink.gif

Ok, wymyśliłem coś. Coś co wygląda tragicznie, ale... działa smile.gif
  1. $i=0;
  2.  
  3. //wybranie utworów z podanego rankingu
  4. $link=mysql_query("SELECT utwory_id FROM utwory
  5. WHERE ranking_id='".$_GET['id']."'");
  6. while ($wiersz = mysql_fetch_assoc($link))
  7. {
  8. $utwory_id[$i] = $wiersz["utwory_id"];
  9. $i++;
  10. }
  11. $i=0;
  12.  
  13. //wyświetlenie głosów dla utworów, które mają jakikolwiek głos
  14. $link3=mysql_query("SELECT utwory_nazwa, utwory_id, COUNT(utwory_id) AS wynik FROM glosowanie
  15. LEFT JOIN utwory USING (utwory_id)
  16. WHERE utwory_id=".$utwory_id[0]." || utwory_id=".$utwory_id[1]." || utwory_id=".$utwory_id[2]." ||
  17. utwory_id=".$utwory_id[3]." || utwory_id=".$utwory_id[4]."
  18. GROUP BY utwory_id ORDER BY wynik DESC");
  19. echo "<table>";
  20. while ($wiersz3 = mysql_fetch_array($link3, MYSQL_ASSOC))
  21. {
  22. echo "<tr><td>".$wiersz3["utwory_nazwa"]."</td><td>".$wiersz3["wynik"]."</td></tr>";
  23. $key = array_search($wiersz3["utwory_id"], $utwory_id);
  24. $utwory_id[$key]=NULL;
  25. }
  26.  
  27. //wyświetlenie głosów (zerowych) dla utworów bez oddanego głosu
  28. $link4=mysql_query("SELECT utwory_id, utwory_nazwa FROM utwory
  29. WHERE ranking_id='".$_GET['id']."'");
  30. $i=0;
  31. while ($wiersz4 = mysql_fetch_array($link4, MYSQL_ASSOC))
  32. {
  33. if($utwory_id[$i]==NULL) {} else { echo "<tr><td>".$wiersz4["utwory_nazwa"]."</td><td>0</td></tr>"; }
  34. $i++;
  35. }
  36. echo "<table>";
  37.  


Mimo wszystko, jak ktoś ma pojęcie jak to zoptymalizować to proszę pisać/podpowiadać smile.gif