Script/programmeertaal: PHP/SQL
Probleem (duidelijke uitleg vereist):
Ik ben bezig met een project over Formule 1, ik heb een tabel coureur met alle coureurs erin en een tabel met uitslag, nu ben ik bezig met het klassement pagina maar ik kom er niet uit. De code die ik momenteel gebruik laad meerdere malen dezelfde coureur en telt de punten uit uitslag niet bij elkaar op.
Code:
PHP
$sql = mysql_query("SELECT * FROM coureur c, uitslag u WHERE c.idCoureur = u.idcoureur")or die(mysql_error());
while($info = mysql_fetch_assoc($sql))
{
$punten = 0;
if($info['positie'] == 1)
{
$punten + 25;
}
elseif($info['positie'] == 2)
{
$punten + 18;
}
elseif($info['positie'] == 3)
{
$punten + 15;
}
elseif($info['positie'] == 4)
{
$punten + 12;
}
elseif($info['positie'] == 5)
{
$punten + 10;
}
elseif($info['positie'] == 6)
{
$punten + 8;
}
elseif($info['positie'] == 7)
{
$punten + 6;
}
elseif($info['positie'] == 8)
{
$punten + 4;
}
elseif($info['positie'] == 9)
{
$punten + 2;
}
elseif($info['positie'] == 10)
{
$punten + 1;
}
echo'<tr><td><a href="?p=coureur_profiel&cid='.$info['idCoureur'].'">'.$info['Voornaam'].'</a></td><td><a href="?p=coureur_profiel&cid='.$info['idCoureur'].'">'.$info['Achternaam'].'</a></td><td>'.$punten.'</td></tr>';
}
Toon Meer
De database ziet er als volgt uit:
PHP
CREATE TABLE `uitslag` (
`idrace` int(11) NOT NULL,
`idcoureur` int(11) NOT NULL,
`positie` int(11) NOT NULL,
`geredenrondes` int(11) NOT NULL DEFAULT '0',
`resultaat` varchar(45) NOT NULL COMMENT 'Bevat winnende tijd, verschil in tijd met winnaar, aantal rondes achterstand op winnaar of ''DNF'' (did not finish)',
PRIMARY KEY (`idrace`,`idcoureur`),
KEY `fk_race_uitslag` (`idrace`),
KEY `fk_coureur_uitslag` (`idcoureur`),
CONSTRAINT `fk_coureur_uitslag` FOREIGN KEY (`idcoureur`) REFERENCES `coureur` (`idCoureur`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_race_uitslag` FOREIGN KEY (`idrace`) REFERENCES `race` (`idRace`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
CREATE TABLE `coureur` (
`idCoureur` int(11) NOT NULL AUTO_INCREMENT,
`Achternaam` varchar(100) NOT NULL,
`Voornaam` varchar(45) NOT NULL,
`Tussenvoegsels` varchar(25) DEFAULT NULL,
`Nationaliteit` varchar(45) DEFAULT NULL,
`Geboortedatum` date DEFAULT NULL,
`Foto` varchar(100) DEFAULT NULL,
`Bijzonderheden` text,
PRIMARY KEY (`idCoureur`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
Toon Meer
Alvast bedankt voor uw hulp en tijd.