![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 1.11.2003 Skąd: Long Island, NY USA Ostrzeżenie: (0%) ![]() ![]() |
kolejny orzech do zgryzienia
nie jestem pewny czy to można to rozwiązać tylko przy mySQL mam tabelę z id, cat1,cat2,cat3,cat4...cat76 id to INT(4) cat1-75 to tinyint(1) w zależności czy jest lub nie ma jest 0 i 1 np: id=12, cat1=0, cat2=1, cat3=1, cat4=0.... id=13, cat1=1, cat2=1, cat3=0, cat4=1.... Jak teraz uzyskać wynik na ile 1 jest w kazdym z cat np: cat1 = 34 cat2 = 44 cat75 = 8 Czy uda sie to zrobic tylko w SELECT? Jesli nie, jaki bybly najlatwiejszy sposob na połączenie z php? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Więc tak - jeżeli to w ogole zadziała to w MySQL 4.1.1
[php:1:29ef791a03]<?php for($i=1; $i<=75; $i++) { $sql[]="( SELECT COUNT(cat".$i.") AS ilosc, 'cat".$i."' AS kat FROM tabela WHERE cat".$i." = 1 GROUP BY cat".$i." )"; } $sql=implode(" UNION ", $sql); $sql.=" ORDER BY ilosc DESC"; $res=mysql_query($sql) or die(mysql_error()); while($t=mysql_fetch_array($res)) { echo $t["kat"]." ".$t["ilosc"]."<br>"; } ?>[/php:1:29ef791a03] To jest czysta teoria, wiec nie mam pojęcia czy to będzie działać - ale naprawde radze przeprojektować strukture tabeli... Update: poprawka w SQLu i php (dodane wyswietlanie). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 01:29 |