ciao a tutti,
con un ciclo while estraggo i record dal db,
vorrei fare in modo che l'admin li possa modificare tutti in una volta e non un record alla volta come si fa di solito.
Come posso fare?
![]()
ciao a tutti,
con un ciclo while estraggo i record dal db,
vorrei fare in modo che l'admin li possa modificare tutti in una volta e non un record alla volta come si fa di solito.
Come posso fare?
![]()
Dipende cosa intendi....fai un esempio pratico. Ti serve una cosa del tipo: prendi i dati di un campo, li estrai e poi tutti questi se sono x devono diventare y??
una cosa tipo phpmyadmin quando selezioni + record?
Puoi gestirtela in una maniera simile
dal ciclo estrai ogni singolo record
e quando li estrarrai:codice:Record 1 campo1<input type="text" name="campo1[]" value=""> campo2<input type="text" name="campo2[]" value=""> Record 2 campo1<input type="text" name="campo1[]" value=""> campo2<input type="text" name="campo2[]" value="">
potrebbe essere una soluzione...Codice PHP:
for($i=0; $i<count($_POST['campo1']); $i++)
echo $_POST['campo1'][$i];
ciao
allora estraggo i campi dal db:
all'interno del ciclo creo il form:codice:while($myrow = mysql_fetch_array($result)){ $campo1 = $myrow["campo1"]; $campo2 = $myrow["campo2"]; $campo3 = $myrow["campo3"];
I dati sopra sono relativi ad ogni singolo record e while li cicla finchè non finiranno tutti i record richiesti dalla query.codice:echo '<form name="Edit" method="post" value="pag.php"> <input type="text" name="campo1" value="'.$campo1.'"> <input type="text" name="campo2" value="'.$campo2.'"> <input type="text" name="campo3" value="'.$campo3.'"> <input type="submit" name="Submit" value="modifica"> </form>'; }
Forse hai ragione tu Ken84, ma ho provato ad adattare il tuo metodo e non ha funzionato.
In cosa sbaglio?
![]()
prova facendo con:
nella pagina in cui recuperi i dati se fai:codice:echo '<form name="Edit" method="post" value="pag.php"> <input type="text" name="campo1[]" value="'.$campo1.'"> <input type="text" name="campo2[]" value="'.$campo2.'"> <input type="text" name="campo3[]" value="'.$campo3.'"> <input type="submit" name="Submit" value="modifica"> </form>';
print_r($_POST['campo1']),
ad esempio, dovresti visualizzare tutti i valori inseriti per ogni singolo record nell'input 'campo1'...
ciao
si, singolarmente funziona è adattato al mio che non va...![]()
Una volta premuto il pulsante devo effettuare tante query per ogni record che ha subito modifica, per cui dovrei trovare il modo di numerare i campi, in modo da poter creare il ciclo
for($i=0;$i<=$numrowupdate;$i++){
$query "UPDATE table
SET campo1=$campo1, campo2=$campo2, ...);
}
Dalla precedente query di selezione (ciclo while), avevo estratto il numero totale di record e l'avevo inserito come campo hidden nel form in modo da poter poi creare il ciclo per la successiva query di aggiornamento, ma non rieuscendo a numerare i record, mi aggiorna solo l'ultimo record che mostra while
![]()
se fai così:
funziona?Codice PHP:
for($i=0; $i< count($_POST['campo1']); $i++)
{
$campo1 = $_POST['campo1'][$i];
$campo2 = $_POST['campo2'][$i];
....
$query "UPDATE table SET campo1='$campo1', campo2='$campo2', ...";
echo "Query n $i ".$query."
";
}
ciao
si, ho fatto esattamente così, solo che nel ciclo al posto di count campo1...
ho messo il numero totale di record estratti:
funziona bene, volevo solo sapere se come procedimento è corretto.Codice PHP:
echo '<form name="Edit" method="post" value="pag.php">
<input type="text" name="numrecord" value="'.$numrecord.'">
<input type="text" name="campo1[]" value="'.$campo1.'">
<input type="text" name="campo2[]" value="'.$campo2.'">
<input type="text" name="campo3[]" value="'.$campo3.'">
<input type="submit" name="Submit" value="modifica">
</form>';
for($i=0;_$i<=_$_POST['numrecord'];_$i++)
{
_$campo1_=_$_POST['campo1'][$i];
_$campo2_=_$_POST['campo2'][$i];
_....
__$query_"UPDATE_table
_SET_campo1='$campo1',_campo2='$campo2', ...";
}
Grazie per l'aiuto.
![]()
ah...ok,pardon, non avevo capito, cmq sì, il procedimento è corretto...
ciao