Autor Zpráva
Tomassian
Profil *
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 *
Oprava: Celkový počet zápasů: 38
jenikkozak
Profil
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 *
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 *
víte někdo poradit?
Frozen
Profil
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 *
Frozen: Děkuji, funguje bezvadně :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: