Update basato sulla selezione dell'utente

  • Creatore Discussione Creatore Discussione blips
  • Data di inizio Data di inizio

blips

Nuovo Utente
12 Mar 2013
29
1
3
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:

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:

Discussioni simili