Redigering af valg med radio input
Som nogen nok ved er jeg dårlig til at forklare mig selv. Så stil endeli spørgsmål.Jeg har en database (valg) hvor en bruger har valgt hvilke af hans spiller der er inde og ude i den kommende runde.
Når brugeren har valgt sine spiller kommer han tilbage til siden hvor han praktisk talt kan vælge spiller igen.
Det vil jeg gerne have lavet om så han istedet kan rette sine valg.
FX er alle spiller markeret ude, dem han har valgt må gerne være markeret i inde. (vi snakker 2 radio input felter)
Og knappen i bunden skal opdatere data og ikke sende nyt.
Jeg vil lige beskrive hvordan systemet virker nu, vise koden, og vise et læsningsforslag som jeg har fået men ikke selv kan finde ud af at lave.
==============================================================
Funktion nu
Systemet fungere indtil vider med, at brugen får listede sine xT6 spiller på en side. Ud for hver spiller er der 2 radio inputs felter. (et for inde value=i og et for ude value="o")
Brugeren vælger nu 9 spiller som skal være inde.
Spillerne bliver kun godkendt og gemt i databasen hvis spillerne er valgt efter 2 bestemte kombinationer af pladser.
(1xGK, 1xA, 1xT, 2xF og 4xM) eller (1xGK, 1xA, 1xT, 3xF og 3xM)
Hvis spilleren har valgt følgende kombinationer som spiller der er inde. Bliver alle 16 spiller sendt til databasen, hvor dem der er inde er markeret med et "i" og dem der er ude med et "o" i fletet io i databasen. Så kan man kende forskel.
==============================================================
Kode som den er nu
<?
include('config.php');
$bruger = bruger1;
echo "<form name='form1' method='post' action=''>";
echo "<center><table border='1' class='sample'><tr bgcolor='#000000'><td colspan='5'><center>";
echo "<font color='#FC9801' face='Verdana, Arial, Helvetica, sans-serif'>Dine spillere</font></center></td></tr>";
echo "<tr bgcolor='#222222'><td><center><font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Ude</font></center></td>";
echo "<td><center><font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Inde</font></center></td>";
echo "<td><center><font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Spiller</font></center></td>";
echo "<td><center><font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Klub</font></center></td>";
echo "<td><center><font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Placering</font></center></td></tr>";
$result = mysql_query("SELECT * from players WHERE bruger = '$bruger' ORDER BY find_in_set(plads, 'GK,F,M,A,T'), navn") or die(mysql_error());
while($row=mysql_fetch_array($result))
{
echo "<tr><td><input type='radio' name='io" .$row['id']. "' value='o' checked='checked'></td><td><input type='radio' name='io" .$row['id']. "' value='i'></td><td>" .$row['navn']. "</td><td>" .$row['klub']. "</td><td>" .$row['plads']. "</td></tr>";
$idarray[] = $row['id'];
}
echo "</table>";
echo "<center><input type='submit' name='submit' value='Send dit hold'></center></form>";
//Behandle resultatet af formen
if($_POST['submit'])
{
$selection = array("GK"=>0,"F"=>0,"M"=>0,"A"=>0,"T"=>0);
$players = array();
$result = mysql_query("SELECT * from players WHERE bruger = '$bruger' ORDER BY navn");
while($row=mysql_fetch_array($result))
{
if (!isset($_REQUEST['io'.$row['id']])) exit("Invalid input.");
if ($_REQUEST['io'.$row['id']] == "i")
{
$selection[$row['plads']]++;
$players[$row['id']] = $row['id'];
}
}
$ok = false;
$validSelections[] = array("GK"=>1,"F"=>2,"M"=>4,"A"=>1,"T"=>1);
$validSelections[] = array("GK"=>1,"F"=>3,"M"=>3,"A"=>1,"T"=>1);
foreach ($validSelections as $sel)
{
$valid = true;
foreach ($sel as $plads => $num)
{
if ( $selection[$plads] != $num) $valid = false;
}
if ($valid==true) $ok = true;
}
if (!$ok) exit("Ugyldigt valg..");
if ($ok)
{
echo "Dine spiller blev nu gem";
$result = mysql_query("SELECT * FROM players WHERE bruger = '$bruger'")or die(mysql_error());
while($row=mysql_fetch_array($result))
{
$io = (array_key_exists($row["id"], $players)) ? "i" : "o" ;
mysql_query("INSERT INTO valg (navn, klub, plads, bruger, io, runde) VALUES('".$row['navn']."', '".$row['klub']."', '".$row['plads']."', '".$row['bruger']."', '$io', '$runde')")or die(mysql_error());
}
}
}
?>
==============================================================
Løsnings foslag
if(tabellen allerede indeholder spillere for $runde) $mode = 'rediger'
if(mode = 'rediger')
{
mysql_query("select spillerne og deres prikker fra valg...
else mysql_query(..select spillerne fra players
if($_POST['submit'])
if($mode == 'rediger') mysql_query(update valg set....)
else mysql_query(insert into valg ....)
Løsningsforslaget er meget logisk og det forstår jeg 100% ideen i.
Mit problem med forslaget er at jeg ikke kan finde ud af hvordan man indsætter tabellen (valg) som indholder spillere fra brugerne og for alle runderne.
Her skal der nok lige være både "where bruger=$bruger1 og runde=$runde".
Og ved jeg ikke lige hvordan man får inputfelterne fyldt ud efter hvad der før er valgt.
Hvis nogen kan hjælpe mig ud af denne her sag vil jeg være meget glad.
