Ciao a tutti, portate pazienza ma sono alle prime armi con PHP, se vedete castronerie nel codice che posto o in quello che chiedo sapete già il motivo.
Il mio problema è questo:
vorrei effettuare due query di aggiornamento diverse in base a quello che il mio utente seleziona in delle select che sono all'interno di un ciclo while, quindi ripetute.
Questo è il mio form:
E queste sono le due query:
Se l'utente non seleziona nulla e quindi lascia il valore 0 nelle option della select, viene lanciata solo la prima query "$updateSQL1", in tutti gli altri casi parte solo la seconda.
Mi date una dritta su come modificare il mio codice per ottenere questo risultato?
Grazie in anticipo
Il mio problema è questo:
vorrei effettuare due query di aggiornamento diverse in base a quello che il mio utente seleziona in delle select che sono all'interno di un ciclo while, quindi ripetute.
Questo è il mio form:
HTML:
<form action="<?php echo $editFormAction; ?>" method="POST" name="contract" id="form1">
<table class="myp-table">
<tr>
<td class="head-act" scope="col">CONTRATTO</td>
</tr>
<?php do { ?>
<tr>
<td class="head-act"><select name="playerContract[]">
<option value="0" <?php if (!(strcmp(0, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>0</option>
<option value="1" <?php if (!(strcmp(1, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>1</option>
<option value="2" <?php if (!(strcmp(2, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>2</option>
<option value="3" <?php if (!(strcmp(3, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>3</option>
</select></td>
<td><input name="id[]" type="hidden" value="<?php echo $row_datacontract['id']; ?>"/>
</td>
</tr>
<?php } while ($row_datacontract = mysql_fetch_assoc($datacontract)); ?>
<tr class="zebra">
<td>
<input class="linkbuttonmp" name="contract" id="submit" type="submit" value="Invio" />
</td>
</tr>
</table>
</form>
E queste sono le due query:
PHP:
if ((isset($_POST ["contract"]))) {
for($j=0,$len=count($_POST['id']);$j<$len;$j++){
$updateSQL1 = sprintf("UPDATE f_player SET playerContract=1 WHERE id=%s",
GetSQLValueString($_POST['id'] [$j], "int"));
mysql_select_db($database_config, $config);
$Result1 = mysql_query($updateSQL1, $config) or die(mysql_error());}
for($j=0,$len=count($_POST['id']);$j<$len;$j++){
$updateSQL2 = sprintf("UPDATE f_player SET playerContract=%s WHERE id=%s",
GetSQLValueString($_POST['playerContract'] [$j], "int"),
GetSQLValueString($_POST['id'] [$j], "int"));
mysql_select_db($database_config, $config);
$Result1 = mysql_query($updateSQL2, $config) or die(mysql_error());
}
$updateGoTo = "mypage.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
Se l'utente non seleziona nulla e quindi lascia il valore 0 nelle option della select, viene lanciata solo la prima query "$updateSQL1", in tutti gli altri casi parte solo la seconda.
Mi date una dritta su come modificare il mio codice per ottenere questo risultato?
Grazie in anticipo
Ultima modifica: