Ciao a tutti, ho un problema che mi assilla da alcuni giorni.
Ho la necessità di inserire in mysql con una select due valori in un unica opzione.
Questo è il mio form:
codice:
<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>
AGGIUNGI
<input class="btnresults" type="submit" value="Salva" />
<input type="hidden" name="MM_insert" value="form1" />
</form>
E questa è la query che utilizzo per l'inserimento:
Codice 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());}
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 per la query.
Ho provato in questo modo, aggiungendo nel form le "[]" al nome degli elementi html:
Codice 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());}}
Ma l'inserimento dei valori non è corretto.
Se invio con il form solo una select mi restituisce questo errore:
codice:
Notice: Undefined offset: 1
Se invece invio più select la query va a buon fine ma i due valori inseriti relativi al $_POST['eplayer_id'] sono sbagliati.
Non so proprio come venirne a capo, qualunque vostro aiuto sarebbe da me molto apprezzato.
Grazie in anticipo.