Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[PHP] Update de plusieurs enregestriments

3 réponses
Avatar
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

3 réponses

Avatar
m a r k u s
<?
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" a écrit dans le message de news:
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




Avatar
Christian Gayton
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
Avatar
m a r k u s
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" a écrit dans le message de news:
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