Tarkoitus olisi saada If-lauseella testattua ettei käyttäjä ole valinnut lomakkeen kahdeksasta kohdasta samaa kuljettejaa. Miten tämä pystyis helpommin toteuttamaan??
Tässä koodia:
<html>
<head>
<title>F1 veikkaus</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$yhteys=mysql_connect("localhost","","") or die("Tietokantayhteyttä ei voitu avata");
mysql_select_db("f1") or die ("Tietokantaa ei voitu avata");
?>
<h1 align="center">F1 Veikkaus</h1>
<p align="center"> </p>
<form name="form1" method="post" action="<?php print $PHP_SELF; ?>">
<div align="center">
<p>GP
<select name="GP" id="GP">
<option value=" "> </option>
<option value="Melbourne">Melbourne</option>
</select>
</p>
<p>Aika-ajojen voittaja</p>
<p>
<select name="aikaajot" id="aikaajot">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center">GP:n kahdeksan parasta</p>
<p align="center"> 1. sija
<select name="asija" id="asija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 2. sija
<select name="bsija" id="bsija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 3. sija
<select name="csija" id="csija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 4. sija
<select name="dsija" id="dsija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 5. sija
<select name="esija" id="esija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 6. sija
<select name="fsija" id="fsija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> 7. sija
<select name="gsija" id="gsija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center">8. sija
<select name="hsija" id="hsija">
<option value=" "> </option>
<option value="Albers">Albers</option>
<option value="Alonso">Alonso</option>
<option value="Barrichello">Barrichello</option>
<option value="Button">Button</option>
<option value="Coulthard">Coulthard</option>
<option value="Fisichella">Fisichella</option>
<option value="Friesacher">Friesacher</option>
<option value="Heidfeld">Heidfeld</option>
<option value="Karthikeyan">Karthikeyan</option>
<option value="Klien">Klien</option>
<option value="Massa">Massa</option>
<option value="Monteiro">Monteiro</option>
<option value="Montoya">Montoya</option>
<option value="Räikkönen">Räikkönen</option>
<option value="Sato">Sato</option>
<option value="Schumacher M.">Schumacher M.</option>
<option value="Schumacher R.">Schumacher R.</option>
<option value="Trulli">Trulli</option>
<option value="Webber">Webber</option>
<option value="Villeneuve">Villeneuve</option>
</select>
</p>
<p align="center"> </p>
<p align="center">Osallistuja
<select name="Osallistuja" id="Osallistuja">
<option value=" "> </option>
<option value="Jari">Jari</option>
<option value="Juha">Juha</option>
</select>
</p>
<p align="center">
<input type="submit" name="Submit" value="Osallistu">
</p>
</div>
</form>
<p align="center"> </p>
<?php
if (isset($_POST['Submit']))
{
if ($asija== $bsija)
{
print "Et voi valita useampaa kuin yhden kuljettajan!!";
}
else
{
$tallennus=mysql_query("insert into Veikkaus (GP,Aikaajot,1Sija,2Sija,3Sija,4Sija,5Sija,6Sija,7Sija,8Sija,Osallistuja)
values (\"$GP\",\"$aikaajot\",\"$asija\",\"$bsija\",\"$csija\",\"$dsija\",\"$esija\",\"$fsija\",\"$gsija\",\"$hsija\",\"$Osallistuja\")");
}
}
mysql_close($yhteys);
?>
</body>
</html>Varmaan fiksuin veto olisi laittaa nuo kaikki samaan taulukkoon (eli <select name='sijat[]'>) ja sitten tarkistaa että löytyykö sieltä arraysta sama nimi useammin kuin kerran. Ja tuohon sopisi myös osuvasti joku javascript-ratkaisu tuon php-varmistuksen rinnalle, joka aina yhden kuljettajan valittua vähentää kyseisen kuljettajan seuraavista pudotuslistoista. Toteutus on sitten eri asia, mutta täältä toki saa vinkkejä ongelmissa :)
Nuo kuskit olis voinu laittaa kantaan ja sieltä hakea ne tuohon select juttuun tai tehä functio, olis säästyny kirjottamiselta pikkusen. Mutta nopeasti väsäsin tarkistuksen.
$tarkistus = array( 1 => "$GP", 2 => "$aikaajot", 3 => "$asija", 4 => "$bsija", 5 => "$csija", 6 => "$dsija", 7 => "$esija", 8 => "$fsija", 9 => "$gsija", 10 => "$hsija", 11 => "$Osallistuja" ); for($i=1; $i<=11; $i++){ for($p=1; $p<=11; $p++){ if($i != $p){ if($tarkistus[$i] == $tarkistus[$p]){ print "Valitsit kaksi samaa i=$tarkistus[$i] ja p=$tarkistus[$p]"; exit; } } } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.