[PHP] Update de plusieurs enregestriments

Le
Christian Gayton
Pfff je dois être fatigué
Un truc simple :
je remplis un form avec un recordset issu d'une requête, ça donne un truc du
genre, un champ hidden avec l'id, un champ input avec la valeur modifiable,
et un submit
je veux pouvoir faire un update de la table pour chaque id (hidden) avec la
valeur de l'input en un seul post
c'est simple en CF, je l'ai déjà fait des centaines de fois, mais avec la
syntaxe php (que je découvre :p), j'avoue que j'ai du mal
un tut clair là-dessus ? tout ce que j'ai trouvé ne marche pas :(

exemple du form potentiel :
<input type="hidden" name="id_rubr" value="1"><input name="num_ord"
value="1"> // hyp : je saisi 13
<input type="hidden" name="id_rubr" value="2"><input name="num_ord"
value="3"> // hyp : je saisi 2
<input type="hidden" name="id_rubr" value="3"><input name="num_ord"
value="17">//hyp : je saisie 4
<input type="hidden" name="id_rubr" value="4"><input name="num_ord"
value="44">//hyp : je saisie 5
<input type="submit">

les requetes devraient être :
update matable SET num_ordre = '13' WHERE id_rubr='1' // pour l'hyp 1
update matable SET num_ordre = '2' WHERE id_rubr='2' // pour l'hyp 2
update matable SET num_ordre = '4' WHERE id_rubr='3' // pour l'hyp 3
update matable SET num_ordre = '5' WHERE id_rubr='4' // pour l'hyp 4

donc ça doit se faire dans une boucle sur le $_POST (array passée par le
form) avec un while sur une list
mais pas moyen de trouver la bonne syntaxe :(((((((

merci d'avance

Christian
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
m a r k u s
Le #16842141
<?
if($_POST['bouton'] == "Update") {
$id_rubr = array_keys($_POST['yo']);
$num_ordre = array_values($_POST['yo']);

for ($i=0; $i<=count($_POST['yo'])-1; $i++){
mysql_query("UPDATE matable
SET num_ordre = '$num_ordre[$i]'
WHERE id_rubr = '$id_rubr[$i]'");
}
}
?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input name="<?="yo[1]"?>" value="1">
<input name="<?="yo[2]"?>" value="3">
<input name="<?="yo[3]"?>" value="17">
<input name="<?="yo[4]"?>" value="44">
<input type="submit" name="bouton" value="Update">
</form>

// ou yo[1] = yo[id_rub=1]
// ou yo[2] = yo[id_rub=2]
// etc...
Les champs hidden sont viré et sont remplacé par l'array $yo[] ou les keys
de yo sont l'id_rub.
Il et tard et j'sais pas si je suis trés clair là.
Ça devrait fonctionner.

--

m a r k u s
http://www.agua-amarga.com
http://www.shopping-cart-software-solution.com




"Christian Gayton" c25hvp$jng$
Pfff... je dois être fatigué
Un truc simple :
je remplis un form avec un recordset issu d'une requête, ça donne un truc


du
genre, un champ hidden avec l'id, un champ input avec la valeur


modifiable,
et un submit
je veux pouvoir faire un update de la table pour chaque id (hidden) avec


la
valeur de l'input en un seul post
c'est simple en CF, je l'ai déjà fait des centaines de fois, mais avec la
syntaxe php (que je découvre :p), j'avoue que j'ai du mal
un tut clair là-dessus ? tout ce que j'ai trouvé ne marche pas :(

exemple du form potentiel :
<input type="hidden" name="id_rubr" value="1"><input name="num_ord"
value="1"> // hyp : je saisi 13
<input type="hidden" name="id_rubr" value="2"><input name="num_ord"
value="3"> // hyp : je saisi 2
<input type="hidden" name="id_rubr" value="3"><input name="num_ord"
value="17">//hyp : je saisie 4
<input type="hidden" name="id_rubr" value="4"><input name="num_ord"
value="44">//hyp : je saisie 5
<input type="submit">

les requetes devraient être :
update matable SET num_ordre = '13' WHERE id_rubr='1' // pour l'hyp 1
update matable SET num_ordre = '2' WHERE id_rubr='2' // pour l'hyp 2
update matable SET num_ordre = '4' WHERE id_rubr='3' // pour l'hyp 3
update matable SET num_ordre = '5' WHERE id_rubr='4' // pour l'hyp 4

donc ça doit se faire dans une boucle sur le $_POST (array passée par le
form) avec un while sur une list
mais pas moyen de trouver la bonne syntaxe :(((((((

merci d'avance

Christian




Christian Gayton
Le #16842071
Salut m a r k u s.
C'était pas une heure pour travailler ça :)
Moi je suis allé me coucher,et ce matin avec les idées claires, ça marche
nickel.
J'ai même fait simple je trouve...

foreach($_POST["id_rubrique"] as $k => $v) {
$num = $_POST["num_ordre"][$k];
$query = "UPDATE tbl_rubriques SET num_ordre = '$num' WHERE
id_rubrique='$v'";
mysql_query($query);
}

avec dans le form sur la boucle du recordset
echo '<tr><td><input type="hidden" name="id_rubrique[]"
value="'.$myrow["id_rubrique"].'">';
echo '<input type="text" size="4" class="input" name="num_ordre[]"
value="'.$myrow["num_ordre"].'"></td><td>';

Merci en tout cas.

Christian
m a r k u s
Le #16842011
C'est plus élégant... c'est à cause de l'heure.... :)

--

m a r k u s
http://www.agua-amarga.com
http://www.shopping-cart-software-solution.com




"Christian Gayton" c274ss$o76$
Salut m a r k u s.
C'était pas une heure pour travailler ça :)
Moi je suis allé me coucher,et ce matin avec les idées claires, ça marche
nickel.
J'ai même fait simple je trouve...

foreach($_POST["id_rubrique"] as $k => $v) {
$num = $_POST["num_ordre"][$k];
$query = "UPDATE tbl_rubriques SET num_ordre = '$num' WHERE
id_rubrique='$v'";
mysql_query($query);
}

avec dans le form sur la boucle du recordset
echo '<tr><td><input type="hidden" name="id_rubrique[]"
value="'.$myrow["id_rubrique"].'">';
echo '<input type="text" size="4" class="input" name="num_ordre[]"
value="'.$myrow["num_ordre"].'"></td><td>';

Merci en tout cas.

Christian




Publicité
Poster une réponse
Anonyme