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:
CREATE TABLE IF NOT EXISTS `glosowanie` ( `glosowanie_id` int(5) NOT NULL AUTO_INCREMENT, `glosowanie_user_id` int(5) NOT NULL, `utwory_id` int(5) NOT NULL, `glosowanie_data` date NOT NULL, PRIMARY KEY (`glosowanie_id`) )
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:
CREATE TABLE IF NOT EXISTS `utwory` ( `utwory_id` int(5) UNSIGNED NOT NULL AUTO_INCREMENT, `utwory_nazwa` text COLLATE utf8_polish_ci NOT NULL, `ranking_id` int(5) NOT NULL, PRIMARY KEY (`utwory_id`) )
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

Czekam na podpowiedzi

Ok, wymyśliłem coś. Coś co wygląda tragicznie, ale... działa

$i=0; //wybranie utworów z podanego rankingu WHERE ranking_id='".$_GET['id']."'"); { $utwory_id[$i] = $wiersz["utwory_id"]; $i++; } $i=0; //wyświetlenie głosów dla utworów, które mają jakikolwiek głos LEFT JOIN utwory USING (utwory_id) WHERE utwory_id=".$utwory_id[0]." || utwory_id=".$utwory_id[1]." || utwory_id=".$utwory_id[2]." || utwory_id=".$utwory_id[3]." || utwory_id=".$utwory_id[4]." GROUP BY utwory_id ORDER BY wynik DESC"); { $utwory_id[$key]=NULL; } //wyświetlenie głosów (zerowych) dla utworów bez oddanego głosu WHERE ranking_id='".$_GET['id']."'"); $i=0; { if($utwory_id[$i]==NULL) {} else { echo "<tr><td>".$wiersz4["utwory_nazwa"]."</td><td>0</td></tr>"; } $i++; }
Mimo wszystko, jak ktoś ma pojęcie jak to zoptymalizować to proszę pisać/podpowiadać
