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:
E questa è la query che utilizzo per l'inserimento: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>
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.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 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:
Ma l'inserimento dei valori non è corretto.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());}}
Se invio con il form solo una select mi restituisce questo errore:
Se invece invio più select la query va a buon fine ma i due valori inseriti relativi al $_POST['eplayer_id'] sono sbagliati.codice:Notice: Undefined offset: 1
Non so proprio come venirne a capo, qualunque vostro aiuto sarebbe da me molto apprezzato.
Grazie in anticipo.

Rispondi quotando
