Page 1 sur 1

Boucle pour variables similaires

Posté : 02 févr. 2019, 23:40
par fatalfury
Bonjour,

J'aimerais éviter de répéter ceci :

Code : Tout sélectionner

$q1 = isset($_POST["q1"]) ? $_POST["q1"] : 0; $q2 = isset($_POST["q2"]) ? $_POST["q2"] : 0; $q3 = isset($_POST["q3"]) ? $_POST["q3"] : 0; $q4 = isset($_POST["q4"]) ? $_POST["q4"] : 0; $q5 = isset($_POST["q5"]) ? $_POST["q5"] : 0; $q6 = isset($_POST["q6"]) ? $_POST["q6"] : 0; $q7 = isset($_POST["q7"]) ? $_POST["q7"] : 0; $q8 = isset($_POST["q8"]) ? $_POST["q8"] : 0; $q9 = isset($_POST["q9"]) ? $_POST["q9"] : 0;
J'ai fait une boucle qui ne marche pas :

Code : Tout sélectionner

for ($i=1; $i<=9; $i++) { $q.$i = isset($_POST["q'.$i.'"]) ? $_POST["q'.$i.'"] : 0; }
Merci pour ceux qui pourront m'aider

Re: Boucle pour variables similaires

Posté : 02 févr. 2019, 23:51
par or 1

Re: Boucle pour variables similaires

Posté : 03 févr. 2019, 01:47
par fatalfury
Avec les accolades ?

Code : Tout sélectionner

for ($i=1; $i<=9; $i++) { $q{$i} = isset($_POST["q'.$i.'"]) ? $_POST["q'.$i.'"] : 0; }
Ca ne marche toujours pas.

Re: Boucle pour variables similaires

Posté : 03 févr. 2019, 15:08
par or 1
il faut lire la doc et apprendre à débuger.

$i = 0;
echo "q'.$i.'";

Re: Boucle pour variables similaires

Posté : 03 févr. 2019, 15:55
par fatal-fury
J'ai lu et tout testé, justement ça ne marche pas.

echo "q'.$i.'"; // Affiche q'.0.'

Re: Boucle pour variables similaires

Posté : 04 févr. 2019, 08:27
par Spols
for ($i=1; $i<=9; $i++)
{
$varname = 'q' . $i;
  $$varname = isset($_POST["q'.$i.'"]) ? $_POST["q'.$i.'"] : 0;
}

Re: Boucle pour variables similaires

Posté : 05 févr. 2019, 00:09
par fatalfury
Ca ne marche toujours pas. En vérifiant avec :
echo $q1;
echo $q2;

Ca me donne tout le temps 0, même quand les posts sont définis.

Re: Boucle pour variables similaires

Posté : 05 févr. 2019, 09:01
par Spols
$_POST["q'.$i.'"] te pose encore des problème,

la différence entre " et ' est importante.
avec des double " les variables php sont interprété
avec des simples ' le text est rendu tel quel.

avec ta syntaxe $_POST["q'.$i.'"] on ouvre des doubles " donc la suite est interprété tel quel sauf les variables. Donc il y a le q puis le simple ' et le point ensuite une variable interprété puis un simple ' et le point résultat q'.X.' qui ne correspond à rien dans ta superglobale $_POST.
donc soit
$_POST['q'.$i]
soit
$_POST["q$i"]

Re: Boucle pour variables similaires

Posté : 05 févr. 2019, 13:53
par fatalfury
En effet, ça marche avec :

isset($_POST['q'.$i]) ? $_POST['q'.$i] : 0;

ou

isset($_POST["q$i"]) ? $_POST["q$i"] : 0;

Merci !