Autor | Zpráva | ||
---|---|---|---|
Tomassian Profil * |
#1 · Zasláno: 27. 1. 2011, 14:51:36
Ahoj, mám takový problém s počítáním na webu. Na webu mám tabulku s názvy ligama a ty přiřazuji k vytváření zápasů.
Čili mám ligy např: IHL Brno - 2 zápasy IGC Praha - 1 zápas IHK Pardubice - 25 zápasů IHA Olomouc - 10 zápasů Celkový počet zápasů: 28 zjištění počet zápasů v jednotlivý lize mám $sql_celkem = MySQL_Query("SELECT * FROM matches"); $a = mysql_num_rows($sql_celkem); $sql_nliga = MySQL_Query("SELECT * FROM liga"); while ($row = MySQL_Fetch_Array($sql_nliga)) { $sql_liga = MySQL_Query("SELECT * FROM matches WHERE league = '".$row["name"]."' "); $e = mysql_num_rows($sql_liga); $neznamo_1 = $a-$e; echo"<tr><td style='padding-left:2px;'>".$row["name"]."</td><td style='padding-left:30px;'>".mysql_num_rows($sql_liga)."</td></tr>"; } echo"<tr><td style='padding-left:2px;'>Ostatní</td><td style='padding-left:30px;'>$neznamo_1 </td></tr>"; Tohle funguje bezvadně, jenže teď mám problém, když třeba smažu ligu IHA Olomouc, tak ten počet kolik tich zápasů bylo (10 zápasů) by se mělo zobrazovat v Ostatní, jenže se mi tam zobrazuje počet 13, čili mi to sečetlo - 10 za smazaný IHA Olomouc, - 2 za IHL Brno - 1 za IGC Praha Nevíte prosím Vás jak to opravit? |
||
Tomassian Profil * |
#2 · Zasláno: 27. 1. 2011, 14:52:58
Oprava: Celkový počet zápasů: 38
|
||
jenikkozak Profil |
#3 · Zasláno: 27. 1. 2011, 14:59:05 · Upravil/a: jenikkozak
Doufám, že v těch vynechaných řádkách pracuješ s daty, které pomocí hvězdičky z databáze získáš. Neboť jinak by se z databáze tahala úplně zbytečně.
Přiřazení k proměnné neznamo_1 se provádí opakovaně v cyklu, přičemž se tato hodnota neustále přepisuje. Lepší by bylo na řádku 12 použít např. $a-=$e; A neznamo_1 nepoužívat. Pokud náhodou má naděje o využití dat nebyla správná, zkus, co vrátí následující dotaz: $sql_celkem = MySQL_Query("SELECT COUNT(*) FROM matches"); |
||
Tomassian Profil * |
#4 · Zasláno: 27. 1. 2011, 15:09:35
udělal jsem:
$sql_liga = MySQL_Query("SELECT * FROM matches WHERE league = '".$row["name"]."' "); echo"<tr><td style='padding-left:2px;'>".$row["name"]."</td><td style='padding-left:30px;'>".mysql_num_rows($sql_liga)."</td></tr>"; } $e = mysql_num_rows($sql_liga); $neznamo = $a-$e; echo"<tr><td style='padding-left:2px;'>Ostatní</td><td style='padding-left:30px;'>$neznamo </td></tr>"; ale ukazuje pořád číslo 13 místo 10 dotaz vrátil hodnotu 1 to je údaj (IGC Praha - tuto ligu sem přidával naposled do systému) |
||
Tomassian Profil * |
#5 · Zasláno: 28. 1. 2011, 11:28:10
víte někdo poradit?
|
||
Frozen Profil |
#6 · Zasláno: 28. 1. 2011, 11:47:49 · Upravil/a: Frozen
Nemáš náhodou v DB na posledním místě při tomto vybírání IHK Pardubice - 25 zápasů, protože
$sql_liga = MySQL_Query("SELECT * FROM matches WHERE league = '".$row["name"]."' "); $e = mysql_num_rows($sql_liga); $neznamo_1 = $a-$e; zde se tvoje proměnná $neznamo pořád přepisuje jak říkal jenikkozak místo: $neznamo_1 = $a-$e; dej: $zapasy_v_lize = $zapasy_v_lize + $e; výsledek by mohl být třeba takovýhle: while ($row = MySQL_Fetch_Array($sql_nliga)) { $sql_liga = MySQL_Query("SELECT * FROM matches WHERE league = '".$row["name"]."' "); $e = mysql_num_rows($sql_liga); $zapasy_v_lize = $zapasy_v_lize + $e; echo"<tr><td style='padding-left:2px;'>".$row["name"]."</td><td style='padding-left:30px;'>".mysql_num_rows($sql_liga)."</td></tr>"; } // tohle vlož až za závorky od while $neznamo = $a - $zapasy_v_lize; echo"<tr><td style='padding-left:2px;'>Ostatní</td><td style='padding-left:30px;'>$neznamo </td></tr>"; |
||
Tomassian Profil * |
#7 · Zasláno: 28. 1. 2011, 12:17:31
Frozen: Děkuji, funguje bezvadně :)
|
||
Časová prodleva: 13 let
|
0