@Retr0bot said:
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 apato.
Grazie in anticipo.
Esiste l attributo multiple nel select del html che ti da la possibilità di selezionare più valori tenendo premuto il tasto ctrl da tastiera. Ti passerà una variabile con due valori separati da una virgola. Tali valori inseriscili in una variabile e splittali grazie alla virgola così da separare i valori che ti passi