Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie częstości występowania cyfry w bazie danych
soliniak
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

Ostrzeżenie: (0%)
-----


Witam,

Mam bazę danych która zawiera ok. 1000 rekordów, są to same cyfry w przedziale od 1-30.
W jaki sposób mogę sprawdzić ile razy która cyfra występuje?

Napisałem coś takiego:
  1. <?php
  2. error_reporting( E_ALL );
  3.  
  4. $l_1c = 1;
  5. $l_num = mysql_query("SELECT * FROM db");
  6.  
  7. while($row=mysql_fetch_row($l_num)){
  8.  
  9. $id = $row['0'];
  10. $l_1 = $row['1'];
  11. $l_2 = $row['2'];
  12. $l_3 = $row['3'];
  13.  
  14. if($l_1 == 1){
  15. $l_1c++;
  16. }
  17. }
  18.  
  19. echo $l_1c;
  20.  
  21.  
  22. ?>

I to myślę, że działa, chciałbym natomiast usprawnić, zautomatyzować cały proces, aby miał zasięg od 1 do 30 cyfry.
Tutaj tylko porównuję ile razy występuje cyfra 1.

Z góry dziękuję za wskazówki i pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
soliniak
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

Ostrzeżenie: (0%)
-----


Zrobiłem tak:


  1. for($i=1; $i<31; $i++){
  2. $wynik=mysql_query ("SELECT *, SUM(`total`) FROM (
  3. (SELECT `l_2` AS `number`, COUNT(*) AS `total` FROM db WHERE l_2 = $i GROUP BY `l_2`)
  4. UNION ALL
  5. (SELECT `l_1` AS `number`, COUNT(*) AS `total` FROM db WHERE l_1 = $i GROUP BY `l_1`)
  6. UNION ALL
  7. (SELECT `l_3` AS `number`, COUNT(*) AS `total` FROM db WHERE l_3 = $i GROUP BY `l_3`)
  8. ) AS `dev_table` GROUP BY `number`");
  9. $wynik2=mysql_fetch_array($wynik);
  10. echo "<pre>";
  11. echo "$i rekordow jest: $wynik2[total]";
  12. echo "</pre>";
  13. }

Ale niestety nie sumuje mi zawartości kolumn, tylko zatrzymuje się na pierwszym select'cie i sumuje wartości pierwszej kolumny podanej w query...
Halp?

Ten post edytował soliniak 20.05.2015, 08:15:34
Go to the top of the page
+Quote Post
Kaze
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.08.2010

Ostrzeżenie: (0%)
-----


  1. for($i=1; $i<31; $i++){
  2. $wynik=mysql_query ("SELECT SUM(`total`) FROM (
  3. (SELECT COUNT(*) AS `total` FROM `db` WHERE l_1 = $i )
  4. UNION ALL
  5. (SELECT COUNT(*) AS `total` FROM 'db' WHERE l_2 = $i )
  6. UNION ALL
  7. (SELECT COUNT(*) AS `total` FROM 'db' WHERE l_3 = $i )
  8. ) AS `dev_table`");
  9. $wynik2=mysql_fetch_array($wynik);
  10. echo "<pre>";
  11. echo "$i rekordow jest: $wynik2[0]";
  12. echo "</pre>";
  13. };

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 20:06