Skleiłem sobie taki kod aby zliczał ile dana liczba pojawiła się w bazie danych. I chcę też tak zrobić by zaznaczając 2 daty tylko z tego okresu policzył ilość wystąpień.
Tylko jak robie to takim zapytaniem to cały czas zlicza wszystkie rekordy. Nie wiem jak to ugryżć. Zauważyłem że zlicza tylko ostatnią kolumnę. Czyli musiałbym każdy dodatkowy warunek
AND tah1.datum IN('$a','$b') dodawać do każdej kolumny czy idzie to krócej zrobić jakby dodatkowym selectem.
Oto kod
$servername = "localhost"; $username = "xxxt"; $password = "xxx"; $database = "xxx"; // Create connection $conn = new mysqli($servername, $username, $password, $database); // Check connection if ($conn->connect_error) { } $sum = 0; for ($i = 1; $i < 81; $i++) { $sql1 = " SELECT COUNT(id) AS pocet FROM `tah1` WHERE cislo1=$i OR cislo2=$i OR cislo3=$i OR cislo4=$i OR cislo5=$i OR cislo6=$i OR cislo7=$i OR cislo8=$i OR cislo9=$i OR cislo10=$i OR cislo11=$i OR cislo12=$i OR cislo13=$i OR cislo14=$i OR cislo15=$i OR cislo16=$i OR cislo17=$i OR cislo18=$i OR cislo19=$i OR cislo20=$i AND tah1.datum IN('$a','$b') "; $result1 = $conn->query($sql1); if ($result1->num_rows > 0) { // output data of each row $x = 1; while (($row = $result1->fetch_assoc())) { $tah1 = $row["pocet"]; $sum += $tah1; } } }
Pozdrawiam
Zrobiłem takie zapytanie i okey pokazuje ilość wystąpień liczb w zakresie dat ale czy mozna to ukrócić?
$sql1 = " SELECT COUNT(id) AS pocet FROM `tah1` WHERE cislo1=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo2=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo3=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo4=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo5=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo6=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo7=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo8=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo9=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo10=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo11=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo12=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo13=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo14=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo15=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo16=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo17=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo18=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo19=$i AND tah1.datum BETWEEN '$a' and '$b' OR cislo20=$i AND tah1.datum BETWEEN '$a' and '$b' ";