- Home
- Categorie
- Coding e Sistemistica
- Coding
- Passaggio di variabili e lettura array
- 
							
							
							
							
							
Passaggio di variabili e lettura arrayCiao, 
 sono nuova e spero di scrivere nella sezione giusta. Il mio problema che mi fa impazzire da due giorni è questo.Ho una form con degli input type="radio" che funziona in questo modo:while ($row = mysql_fetch_array($query)){ 
 echo "
 <input type="hidden" name="id" value="$row[adv_id]">
 <td class="center"><input name="aggiorna[$row[adv_id]]" type="radio" value="pag"></td>
 <td class="center"><input name="aggiorna[$row[adv_id]]" type="radio" value="pub"></td>
 <td class="center"><input name="aggiorna[$row[adv_id]]" type="radio" value="eli"></td>";
 </table><input type="submit" name="agg" value="Aggiorna"></form>";
 }dove $row[adv_id] corrisponde all'id univoco che estraggo dalla tabella. Io vorrei che all'invio della form fossero eseguite diverse query di aggiornamento in base al valore di input type="radio" selezionato. 
 Questo è il codice:if (isset($_POST['agg'])) { 
 $azione = $_POST['aggiorna'];
 $id = $_POST['id'];$ct=0; 
 echo "<h3>comincio il for each</h3>";
 foreach($azione as $inssi){
 if($azione[1] =="pub"){
 $query=mysql_query("UPDATE classifads
 SET pub = '1'
 WHERE adv_id =$id");} 
 if($azione[1] =="pag"){
 $query=mysql_query("UPDATE classifads
 SET pag = '1'
 WHERE adv_id =$id");} 
 if($azione[1] =="eli"){
 $query=mysql_query("UPDATE classifads
 SET eli = '1'
 WHERE adv_id =$id");} 
 $ct++;} 
 }Il problema è che non so estrarre i singoli elementi dell'array. Se stampo l'array con: 
 print_r($azione);
 ottengo
 Array ( [199] => pag [244] => pag )ma con print $azione[1]; non viene stampato nulla. Dove sbaglio? Aiuto!!!:x 
 
- 
							
							
							
							
							
Ciao jecaprofe e benvenuto sul forum GT, supponendo che il form sia di tipo (method) POST e che $row[adv_id] valga ad esempio 37, il risultato del *radio button *lo hai in: $_POST['aggiorna']37]; pertanto, avendo posto: if (isset($_POST['agg'])) { 
 $azione = $_POST['aggiorna'];
 $id = $_POST['id'];in $azione37] hai memorizzato il tuo valore (pag, pub o eli, nell'esempio). Probabilmente il tuo errore è nell'aver messo degli ***if ***del tipo: if($azione1] =="pag"){ mentre avresti dovuto inserire come indice dell'array $azione il numero 37, oppure più in generale: if($azione$row[adv_id]] =="pag"){ Spero di aver capito (e risolto :D) il problema.  
 
- 
							
							
							
							
							
OK!!!!! 
 Funziona, però mi resta un problema che non capisco. Ho modificato in questo modo l'if$id = $_POST['id']; 
 echo "ID $id";
 if($azione[$id] =="pub"){
 $query="UPDATE classifads
 SET pub = '1'
 WHERE adv_id =$id";
 echo "$query<br />";
 echo "modifica pubblicazione";
 }
 ....Però se il valore di id è 23 mi esegue due volte la query con lo stesso id, mentre dovrebbe eseguire la query per ogni diverso ID 
 Sono stata un po' contorta?:?