- Home
- Categorie
- Coding e Sistemistica
- Coding
- Aggiornamento dati che non avviene
- 
							
							
							
							
							Ciao, 
 se ti trovi tutto spostato di un indice potrebbe essere dovuto agli indici dell'array: tu hai scelto di farli partire da uno, ma PHP conta da zero.Può essere questo il motivo?  
 
- 
							
							
							
							
							Si,ho cominciato a farlo contare da 0 è pare che funzioni per ora...:) 
 
- 
							
							
							
							
							è spuntato un altro problema...l aggiornamento avviene solo nei dati presenti all ultima riga:? 
 
- 
							
							
							
							
							Ciao, 
 è corretto. Se ci pensi te hai distinto le colonne ( indice diverso per ognuna) di ogni riga ma non distingui le righe, 
 quindi anche se tutti i parametri vengono inviati dal form, PHP crea sempre lo stesso array (il nome è sempre uguale) per ogni riga e l'ultimo sovrascrive tutti gli altri.Un array multi-dimensionale sarebbe la soluzione. Devi discriminare anche le righe. oltre alle colonne. Spero di essermi spiegato.  
 
- 
							
							
							
							
							Mmm..devo aggiungere un altro campo alla tabella che identifichi le righe?Poi aggiungere nella where della query anche questo ultimo campo?? 
 
- 
							
							
							
							
							Ciao, 
 nella query dovrebbe bastarti l'ID del record, se è veramente univoco.Devi solo identificare le righe nel trasporto HTTP dal form allo script PHP che esegue l'UPDATE.  
 
- 
							
							
							
							
							Si l id è univoco,per favorepotresti farmi un esempio di come identificare queste righe?? 
 Non ho mai trattato gli array multidimensionali stavo proprio ora leggendo qualcosa a riguardo...
 
- 
							
							
							
							
							Ciao,solitamente io in questi casi ciclando sul dataset utilizzo come suffisso l'indice del ciclo. Es: 
 [php]for($i=0; i<count($array);i++){ echo '<input type="text" name="campoA_' . $i . '" value="' . $array* . '"/>'; } 
 echo '<input type="hidden" name="numero_righe" value="' . $i . '"/>';
 [/php]In questa maniera, utilizzando il campo nascosto 'numero_righe' so anche fino a che numero di riga aspettarmi valori in arrivo dal FORM HTML. 
 
- 
							
							
							
							
							Dovrei fare qualcosa simile le form? 
 [php]
 <?
 include "config.php"; // file di connessione al Db//seleziono i campi da visualizzare per singolo utente 
 $strsqlultima="SELECT *
 FROMclassifica
 ORDER BYclassifica.puntiDESC
 LIMIT 0 , 30";
 $query1=@mysql_query("$strsqlultima") or die("Errore query database: " . mysql_error());while($row=mysql_fetch_array($query1)) 
 {
 $squadra=$row['squadra'];
 $punti=$row['punti'];
 $vittorie=$row['vittorie'];
 $perse=$row['perse'];
 $golfatti=$row['golfatti'];
 $golsubiti=$row['golsubiti'];
 $id=$row['id'];
 echo "$id";for($i=0; i<count($row);i++){ echo '<input type="text" name="Punti' . $i . '" value="' . $row* . '"/>'; } 
 echo '<input type="hidden" name="numero_righe" value="' . $i . '"/>';echo '<input type="text" name="Vittorie' . $i . '" value="' . $row* . '"/>'; } 
 echo '<input type="hidden" name="numero_righe" value="' . $i . '"/>';?> <form name="signup" id="signup" method="post" action="aggiornaclassifica.php"> 
 <table width="490">
 <td width="52"colspan="2">
 <input type="text" style="font-family:tahoma; font-size:11px;" name="campo[1]" value="<? echo "$squadra "?>" id="squadra" tabindex="7" size="9"/></td>
 <td width="50px"colspan="2">
 <input type="text" style="font-family:tahoma; font-size:11px;"name="campo[2]" value="<? echo "$punti"?>" id="punti" tabindex="7" size="1"/></td>
 <td width="50px"colspan="2">
 <input type="text" style="font-family:tahoma; font-size:11px;"name="campo[3]" value="<? echo "$vittorie"?>" id="vittorie" tabindex="7" size="1"/></td>[/php] 
 
- 
							
							
							
							
							Ciao carlitos1982, 
 provo a farti un esempio più o meno completo.Nella pagina PHP dove esponi i dati letti dal DB, io farei così: 
 [php]<form name="signup" id="signup" method="post" action="aggiornaclassifica.php"> 
 <?php
 $i=0;
 while($row=mysql_fetch_array($query1))
 {
 ?>
 <input type="hidden" name="id_<?php echo $i;?>"
 value="<?php echo $row['id'];?>">
 <input type="text" name="squadra_<?php echo $i;?>"
 value="<?php echo $row['squadra'];?>"><br/>
 <input type="text" name="punti_<?php echo $i;?>"
 value="<?php echo $row['punti'];?>"><br/>
 <input type="text" name="vittorie_<?php echo $i;?>"
 value="<?php echo $row['vittorie'];?>"><br/>
 <input type="text" name="perse_<?php echo $i;?>"
 value="<?php echo $row['perse'];?>"><br/>
 <input type="text" name="golfatti_<?php echo $i;?>"
 value="<?php echo $row['golfatti'];?>"><br/>
 <input type="text" name="golsubiti_<?php echo $i;?>"
 value="<?php echo $row['golsubiti'];?>">
 <?php
 }
 ?>
 <input type="hidden" name="numsquadre" value="<?php echo $i;?>">
 <input type="submit">
 </form>
 [/php]Poi nella pagina che riceve i dati del form, la aggiornaclassifica.php,
 catturerei i dati in POST in questa maniera:
 [php]
 $numsquadre = $_POST['numsquadre'];for($i=0; $i<$numsquadre; i++){ 
 ISTRUZIONE UPDATE CON I VALORI DI:
 $POST['id'.$i]; //recuperi l'id della squadra n (e del record)
 $POST['squadra'.$i]; //recuperi il nome della squadra n
 $POST['punti'.$i]; //recuperi i punti della squadra n
 $POST['vittorie'.$i]; //recuperi i punti della squadra n
 .........
 }
 ?>
 [/php]Penso che questa maniera sia conveniente in quanto non utilizza alcun array quindi è più comprensibile e
 facile da implementare e mantenere.Spero di non aver commesso errori, 
 perchè non ho avuto modo di testarla.:D