Pagina 1 din 1
Select Top voturi de azi
Scris: Vin Iul 11, 2014
de evident
Am o baza de date voturi cu urmatoarele coloane:
id, user, item, data
userul este userul care a votat si item este itemul pe care la votat.
data este data la care s-a votat
Vreau sa fac un select cu cel mai votat item de astazi.
Multumesc mult.
Select Top voturi de azi
Scris: Vin Iul 11, 2014
de MarPlo
Daca coloana "data" e de tip DATE sau DATETIME, incearca acest Select:
Cod: Selectaţi tot
SELECT item, COUNT(item) AS nrvoturi FROM tabel WHERE DATE(data) = DATE(NOW()) GROUP BY item ORDER BY nrvoturi DESC
Sau:
Cod: Selectaţi tot
SELECT item, COUNT(item) AS nrvoturi FROM tabel WHERE DATE(data) >= CURDATE() GROUP BY item ORDER BY nrvoturi DESC
Select Top voturi de azi
Scris: Vin Iul 11, 2014
de evident
Nu imi mere asa cum trebuie acest script.
De exemplu eu am in tabelul voturi asa:
Cod: Selectaţi tot
id user item data
1 user1 poza 2014-07-12
2 user2 poza2 2014-07-12
3 user3 poza 2014-07-12
4 user4 poza 2014-07-12
5 user5 poza3 2014-07-12
6 user6 poza2 2014-07-12
Vreau sa afisez ce-a mai votata poza.
In cazul meu sa afiseze "poza".
Multumesc
Select Top voturi de azi
Scris: Sâm Iul 12, 2014
de MarPlo
Codul functioneaza, doar ca daca vrei sa returneze un singur rand, cu cea mai votata poza, trebuie adaugat: " LIMIT 1". Pentru cele mai votate 2 poze, se pune " LIMIT 2".
Cod: Selectaţi tot
SELECT item, COUNT(item) AS nrvoturi FROM tabel WHERE DATE(data) = DATE(NOW()) GROUP BY item ORDER BY nrvoturi DESC LIMIT 1
Select Top voturi de azi
Scris: Sâm Iul 12, 2014
de evident
Merge bine, am faut asa:
Cod: Selectaţi tot
<?php
$sql_voturi = "SELECT item, COUNT(item) AS nrvoturi FROM voturi WHERE DATE(data) = DATE(NOW()) GROUP BY item ORDER BY nrvoturi DESC LIMIT 1";
$query = mysqli_query($db_conx, $sql_voturi);
while($row = mysqli_fetch_array($query)) {
$nr= $row['nrvoturi'];
}
echo $nr;
?>
Mai am o intrebare aici daca se poate ca atunci cand gaseste 2 iteme care au acelasi nr de voruri sa afiseze doar unul.
Scriptul afiseaza doar unul dar cand dau refresh la pagina il afiseaza pe celalalt item care are acelasi nr de voturi.
Multumesc mult
Select Top voturi de azi
Scris: Dum Iul 13, 2014
de MarPlo
Ca sa returneze mereu acelasi item cu numar egal de voturi, adauga si "item" la ORDER BY :
Cod: Selectaţi tot
SELECT item, COUNT(item) AS nrvoturi FROM tabel WHERE DATE(data) = DATE(NOW()) GROUP BY item ORDER BY nrvoturi DESC, item DESC LIMIT 1