Avatar billede foght Nybegynder
04. november 2004 - 14:58 Der er 4 kommentarer

Statistik opdatering

Hej.
Jeg er ved at lave en funktion til opdatering af statistik på spillere i en sportsklub.

Jeg arbejder med 3 tabeller

- Kampe
- Spillere
- Statistik

Hvor statistik samler kamp-id og spiller-id på hændelser i kampe.

På opdaterings siden skriver jeg et felt ud for hvert mål der er score i kampen, hvori man kan vælge en målscorer og det samme antal felter hvor man kan vælge spilleren der assisterede målet (lagde op til målet).

Problemet opstår når dette skal opdateres i statistik tabellen, hvor målscorer, assistent, tidspunkt på scoring osv. skal oprettes.

Det jeg foreløbig har er:

        foreach ($medlem_id as $item)
        {
       
        foreach ($assist as $a_item)
                {
        mysql_query("INSERT INTO floorball_statistik (r_id, m_id, h_id, spiller_id, assist, minut, sekund, periode) VALUES ('null', '$kamp', '1', '$item', '$a_item', '$minut', '$statistik', '$periode')");
        }
       
        } 

Problemet er at målscoreren bliver oprettet samme antal gange som der er scoret mål i kampen og ud for hver af disse scoringer kommer der en forskellig assistent. Så hvis der f.eks. er scoret 10 i kampen, kommer der 100 rækker i tabellen.

Håber ikke spørgsmålet er for uklart, ellers må i gerne bede om at få det uddybet eller forklaret

Mvh
Bo Foght
Avatar billede foght Nybegynder
04. november 2004 - 16:18 #1
Hej igen

Jeg er nu kommet frem til at jeg er nød til at lave et array, for at kunne lagre disse data.

Jeg har fundet dette eksempel, men har brug for at gøre det dynamisk:

<?php
$bakery = array(
"cherry" => array("5.00","2 pieces","sugar"),
"apple" => array("4.00","3 pieces","sugar"),
"other" => array("2.00","1 piece","sugar-free"),
);
echo "cherry pie costs ".$bakery['cherry'][0].", and you get ".$bakery['cherry'][1].".";
//prints "cherry pie costs 5.00, and you get 2 pieces."
echo "apple pie costs ".$bakery['apple'][0].", and you get ".$bakery['apple'][1].".";
//prints "apple pie costs 4.00, and you get 3 pieces."
echo "the other pie costs ".$bakery['other'][0].", but its ".$bakery['other'][2].".";
//prints "the other pie costs 2.00, but its sugar-free.
?>

Mvh
Bo Foght
Avatar billede klitberg Nybegynder
04. november 2004 - 17:11 #2
du kunne gøre brug af explode() funktionen. Når du så sætte asistenter ind i tabellen gør du det på følgende form:

assistent1:assistent2:assistent3 osv..

Når du så henter resultatet ned fra databasen for at bruge det kan du bruge exlode således:

$streng = assistent1:assistent2:assistent3 //hentet fra databasen
$eksploderet_streng = explode(":" , $streng");

$eksploderet_streng[0] indeholder nu assistent 1. $eksploderet_streng[1] indeholder assisten2 osv...

håber du kan bruge det
Avatar billede foght Nybegynder
04. november 2004 - 17:35 #3
Tak for svaret.

Kan muligvis bruge det, men ligger lige en lidt bedre forklaring ud senere.
Avatar billede foght Nybegynder
04. november 2004 - 18:01 #4
Kig på:

http://www.svendborgfloorball.dk/statistik/statistik.php

De kampe hvor resultaterne er registreret (Indtil den første mod Sønderborg) Bliver der oprettet felter efter hvor mange mål vi har scoret. F.eks. kommer der 4 mod ishøj, 1 mod PI-KBH osv. Det er altså ikke et fast antal felter der kommer.

Det ser således ud:

if($edit){

$foresp = mysql_query("SELECT * FROM floorball_kampe, floorball_modstander WHERE floorball_kampe.modstander_id = floorball_modstander.modstander_id AND floorball_kampe.kamp_id=$edit ORDER BY floorball_kampe.dato ASC");
WHILE ($data = mysql_fetch_array($foresp)){

echo "<form name=\"update_stats\" method=\"post\" action=\"opret_statistik.php\">";
$maal = $data[res_svendborg];
echo "<table>";
echo "<tr>";

echo "<td>";
echo "Mål";
echo "</td>";

echo "<td>";
echo "Assist";
echo "</td>";

echo "<td>";
echo "Minut";
echo "</td>";

echo "<td>";
echo "Sekund";
echo "</td>";

echo "<td>";
echo "Periode";
echo "</td>";

echo "</tr>";
for ($i = 0; $i < $maal; $i++)
{
echo "<input name=\"antal_maal\" type=\"hidden\" value=\"".$maal."\">";
echo "<input name=\"kamp\" type=\"hidden\" value=\"".$edit."\">";
echo "<tr>";
echo "<td>";
echo "<select name=\"medlem_id[]\" id=\"medlem_id[]\">";
$foresp = mysql_query("SELECT * FROM floorball_spiller");
WHILE ($data = mysql_fetch_array($foresp)){
echo "<option value=\"".$data[spiller_id]."\">".$data[navn]."</option>";
}
echo "</select>";
echo "</td>";

echo "<td>";
echo "<select name=\"assist[]\" id=\"assist[]\">";
$foresp = mysql_query("SELECT * FROM floorball_spiller");
WHILE ($data = mysql_fetch_array($foresp)){
echo "<option value=\"".$data[spiller_id]."\">".$data[navn]."</option>";
}
echo "</select>";
echo "</td>";

echo "<td>";
echo "<input=\"text\" name=\"minut[]\" id=\"minut[]\" size=\"5\">";
echo "</td>";

echo "<td>";
echo "<input=\"text\" name=\"sekund[]\" size=\"5\">";
echo "</td>";

echo "<td>";
echo "<select name=\"periode[]\">";
echo "<option value=\"1\">";
echo "1. periode";
echo "</option>";

echo "<option value=\"2\">";
echo "2. periode";
echo "</option>";

echo "<option value=\"3\">";
echo "3. periode";
echo "</option>";

echo "</select>";
echo "</td>";

echo "</tr>";
}
}
echo "</table>";
echo "<input name=\"stats\" type=\"submit\" value=\"Opret\">";
echo "</form>";
}

De værdier man vælger, skal derefter gemmes i databasen i en tabel med felter for spiller, assist, minut, sekund og periode.

Håber det giver mening.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester