Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Liczenie z zakresu dat.
woxala123
post 23.09.2017, 13:09:34
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Witam.
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
  1. a = date($_POST['from']);
  2.  
  3. $b = date($_POST['to']);
  4.  
  5. $servername = "localhost";
  6. $username = "xxxt";
  7. $password = "xxx";
  8. $database = "xxx";
  9.  
  10. // Create connection
  11. $conn = new mysqli($servername, $username, $password, $database);
  12.  
  13. // Check connection
  14. if ($conn->connect_error) {
  15. die("Connection failed: " . $conn->connect_error);
  16. }
  17. echo "Connected successfully<br><br>";
  18.  
  19. $sum = 0;
  20. for ($i = 1; $i < 81; $i++) {
  21.  
  22.  
  23. $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') ";
  24. var_dump($sql1);
  25. $result1 = $conn->query($sql1);
  26.  
  27. if ($result1->num_rows > 0) {
  28. // output data of each row
  29. $x = 1;
  30.  
  31. while (($row = $result1->fetch_assoc())) {
  32.  
  33. $tah1 = $row["pocet"];
  34.  
  35. $sum += $tah1;
  36.  
  37.  
  38.  
  39. echo " id " . $i . "<br>";
  40. echo " Liczbę " . $i . " Wylosowano razy " . ($tah1) . "<br>";
  41.  
  42. }
  43. }
  44.  
  45. }

Pozdrawiam

Zrobiłem takie zapytanie i okey pokazuje ilość wystąpień liczb w zakresie dat ale czy mozna to ukrócić?
  1. $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' ";
  2.  


Ten post edytował woxala123 23.09.2017, 13:11:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
woxala123
post 24.09.2017, 18:57:44
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----



No wiesz najpierw wykonuje się działania w nawiasach a potem dalsze działania z wynikiem ich czyli tak aby opuścic nawias.
To tak dla przypomnienia potomnym.
  1. $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 BETWEEN '$a' and '$b')) ";
  2.  
  3.  

Zrobiłem coś takiego. To już lepiej? I jeszcze pytanie czy da się też obliczyć pary wystepowań liczb, przy zmodyfikowaniu kodu.
Pozdrawiam

Ten post edytował woxala123 24.09.2017, 19:03:29
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 17:59