Ciao a tutti, sono alle prime armi con php portate pazienza se vedete castronerie nel codice che posto.
Ho trovato su questo forum un codice, che ho adattato alle mie necessità, che mi permette di inserire in mysql con una select due valori in un unica opzione.
Questo è il mio form:
[HTML]<form action="updateresult.php" method="post" name="edit" >
<div class="row">
<div class="golcontent">
<div class="pull-left">
<select name="eplayer_id" class="tripObject" >
<option value="%">Seleziona</option>
<?php
$lastteam = "";
do {
?>
<?php if ($lastteam != $row_datagoal['tteam'])
echo '<optgroup label="'.$row_datagoal['name'].'">';
echo '<option value="'.$row_datagoal['id'].','.$row_datagoal['tteam'].'">'.$row_datagoal['playerName'].'</option>';
if ($lastteam != $row_datagoal['tteam'])
echo '</optgroup>';
$lastteam = $row_datagoal['tteam'];?>
<?php
} while ($row_datagoal = mysql_fetch_assoc($datagoal));
$rows = mysql_num_rows($datagoal);
if($rows > 0) {
mysql_data_seek($datagoal, 0);
$row_datagoal = mysql_fetch_assoc($datagoal);
}?>
</select>
<input class="inputfieldres" name="ecount" type="text" value="" size="2" maxlength="2"/>
<input type="hidden" name="ematch_id" value="<?php echo $row_dataresults['id']; ?>"/>
</div>
</div>
</div>
<a href="#" id="Add">AGGIUNGI</a>
<input class="btnresults" type="submit" value="Salva" />
<input type="hidden" name="MM_insert" value="form1" />
</form>[/HTML]
E questa è la query che utilizzo per l'inserimento:
[PHP]if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){
$newteam = explode (",", $_POST['eplayer_id']);
$insertSQL = sprintf("INSERT INTO f_matchevents (eplayer_id, eteam_id, ematch_id, ecount) VALUES (%s, %s, %s, %s)",
GetSQLValueString(trim($newteam[0]), "int"),
GetSQLValueString(trim($newteam[1]), "int"),
GetSQLValueString($_POST['ematch_id'], "int"),
GetSQLValueString($_POST['ecount'], "int"));
mysql_select_db($database_config, $config);
$Result1 = mysql_query($insertSQL, $config) or die(mysql_error());}[/PHP]
In questo modo tutto funziona bene, ma il mio problema è che gli elementi del mio form (select compresa) vengono ripetuti tramite uno script js che utilizzo per clonare gli elementi html.
In pratica il mio utente, prima dell'invio del form, può aggiungere più select.
E a questo punto mi sono bloccato perchè proprio non riesco a capire come creare correttamente un ciclo corretto per la query.
Ho provato in questo modo, aggiungendo nel form le "[]" al nome degli elementi html:
[PHP]if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){
for($j=0;$j<count($_POST['eplayer_id'][0]);$j++){
$insertSQL = sprintf("INSERT INTO f_matchevents (eplayer_id, eteam_id, ematch_id, ecount) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['eplayer_id'][0][$j], "int"),
GetSQLValueString($_POST['eplayer_id'][1][$j], "int"),
GetSQLValueString($_POST['ematch_id'][$j], "int"),
GetSQLValueString($_POST['ecount'][$j], "int"));
mysql_select_db($database_config, $config);
$Result1 = mysql_query($insertSQL, $config) or die(mysql_error());}}[/PHP]
Ma l'inserimento dei valori del post 'eplayer_id non è corretto.
Non so proprio come venirne a capo, qualunque vostro aiuto sarebbe da me molto apprezzato.
Grazie in anticipo.