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.