Skripta za nogometno ligo

Lp!

V phpju izdelujem preprosto skripto za lokalno nogometno ligo. Na strani bodo objavljeni razporedi tekem, lestvica, lestvica strelcev in rezultati. Na sezono bo 18 kol, v vsakem kolu 5 tekem.
Rad bi, da bi stvar funkcionirala nekako tako: za vsako kolo bom vpisal rezultate vseh tekem in strelce. Ti rezultati se bodo izpisali na posebni strani, točke in goli pa se bodo osvežili na obeh lestvicah. Zatakne se mi na začetku, ker ne vem kako bi uredil bazo. Razmišljal sem nekako tako: 1. tabela-igralci, 2.tabela-tekme, 3. tabela-statistika. Vendar ne bi znal povezat vsega tega, bi mi lahko kdo malo pomagal? Samo, da se kreira neka osnova, na kateri lahko gradim. Ostalo bom že pogooglal :D

Hvala in lp,
M

19 odgovorov

Aha, torej vmesna tabela ekipa_igralec se mi zdi še najboljša ideja. Ne vem pa točno kaj si mislil s tem, da shranim začetek in konec?

Kot začetek in konec shraniš začetek igranja za ekipo in konec igranja za ekipo. Tako točno veš, za katero ekipo je igral določen igralec ob določenem času. Enako pri lige_ekipe veš od kdaj do kdaj je določena ekipa bila v določeni ligi.

Poglej si malo načrtovanje podatkovne baze, ER modele in podobne stvari.

1

Sem se odločil za poenostavljeno varianto... Sedaj pa imam eno težavo..Na strani "Strelci" bi rad v tabelo izpisal vse strelce; rank, ime in število golov. Ime in število golov ni problem, prav tako razvrstitev od najvišjega do najnižjega. Zanima me kako v tabelo dodati "rank" številke, tako da bo tisti, ki ima največ golov imel 1, drugi 2 itd. ?

$result = mysql_query("SELECT * FROM igralec ORDER BY goli DESC");
echo "<table class='altrowstable' id='alternatecolor'>
<tr>
<th>Mesto</th>
<th>Ime igralca</th>
<th>Število golov</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>??rank??</td>";
  echo "<td>" . $row['ime'] . "</td>";
  echo "<td>" . $row['goli'] . "</td>";
  echo "</tr>";
  }
echo "</table>";
$i=0;

while($row = mysql_fetch_array($result))
{
$i = $i + 1;
echo "<tr>";
echo "<td>$i.".)"</td>";
echo "<td>" . $row['ime'] . "</td>";
echo "<td>" . $row['goli'] . "</td>";
echo "</tr>";
}
echo "</table>";
1

Edino razmisli kako boš prikazal dva ali pa tri igralce z enakim številom golov :) ko si delijo isto mesto. Potem boš moral preverit število golov prejšnjega in primerjat z zdajšnjim in povečat mesto, vendar ga ne izpisat ali pa izpisat enako kot je bilo prejšnje mesto.

1

tak kot je gogy svetoval...

$i=1; $mesto=1;
$goli= -1; //vrednost, ki ziher ne obstaja
while($row = mysql_fetch_array($result)){

    //ce je stevilo golov predhodnika isto, potem ne spremeni mesta
    if($row["goli"] != $goli){
          $goli = $row["goli"];
           //ce pa ni isto, pa je novo mesto
          $mesto = $i;
    }
echo "<tr>";
echo "<td>$mesto.".)"</td>";
echo "<td>" . $row['ime'] . "</td>";
echo "<td>" . $row['goli'] . "</td>";
echo "</tr>";
$i++;
}
echo "</table>";

nekaj takega bi moglo delat.. netestirano

Mešetar, po mojem tale koda ne bi delala prav, če bi imeli trije ali več igralcev enako število golov :) ker v vsakem primeru na koncu poveča i.

To bi delalo prav samo če bi največ dva imela enako število golov.

poglej se enkrat...

i se poveca, izpise se pa mesto!

  1. 7 golov
  2. 6 golov
  3. 5 golov
  4. 5 golov
  5. 5 golov
  6. 4 goli
1

Imaš prav, me je zmedlo ko sem pri mesto videl i :) prehitro pogledal