Comment mettre dans une boucle?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment mettre dans une boucle?

Re: Comment mettre dans une boucle?

par pitou31 » 10 juin 2010, 12:00

Tu as raison c'est un bon conseil que j'essaierai de tenir en compte.
Je vais maintenant poursuivre ma formation en PHP et autre Mysql.
A+

Re: Comment mettre dans une boucle?

par telnes » 10 juin 2010, 10:28

de rien

... mais peut etre qu'il faut mettre plus de rigueur dans le nom de tes variables :)
$si
$sn ... c'est pas parlant et meme toi tu t'y perd

++

Re: Comment mettre dans une boucle?

par pitou31 » 10 juin 2010, 10:18

OK merci, erreur entre $i et $si. :oops:
Comme quoi faut relire mais comme souvent il vaut mieux que ce soit quelqu'un d'autre que l'auteur qui relise car l'auteur ne voit pas ses fautes de frappe......
Merci à toi.

Re: Comment mettre dans une boucle?

par telnes » 10 juin 2010, 10:00

et $si est définie ou ?

Re: Comment mettre dans une boucle?

par pitou31 » 09 juin 2010, 20:04

Merci, je suis d'accord sur l'erreur de logique pour le while , mais je parlais de $Si qui n'est pas reconnu dans une boucle for comme je l'explique:
J'ai une erreur : Notice: Undefined variable: si in C:\wamp\www\TESTPHP\MICHEL\Affichage_Client_5.php on line 268 c'est à dire sur la ligne
echo "Contrat :<input name='No' type='text' id='No' value='$si' size='2' maxlength='2' /><br>";
pour le code suivant :

Code : Tout sélectionner

<?php for ($i=0; $i<$Nblignes_contrat; $i++) { $ligne_contrat = mysqli_fetch_assoc($resultat_contrat); /* $sn =$i + 1; */ extract($ligne_contrat); echo "Contrat :<input name='No' type='text' id='No' value='$si' size='2' maxlength='2' /><br>"; } ?>
C'est la raison pour laquelle je pose la question.

Re: Comment mettre dans une boucle?

par telnes » 09 juin 2010, 09:41

hello

non, tu peux utilisé $i mais dans ton cas la valeur sera toujours 1 ^^ (dans ton premier poste)
while ($ligne_contrat = mysqli_fetch_assoc($resultat_contrat));
{
extract($ligne_contrat);
$i=1; // <<<<<<<<<<<<<<<<< tu met $i à 1 à chaque itération  
echo "Contrat :<input name='No' type='text' id='No' value='$i' size='2' maxlength='2' />";

$i++;
}
fait
$i = 1; // on place avant le while
while ($ligne_contrat = mysqli_fetch_assoc($resultat_contrat));
{
extract($ligne_contrat);

echo "Contrat :<input name='No' type='text' id='No' value='$i' size='2' maxlength='2' />";

$i++;
}

Re: Comment mettre dans une boucle?

par pitou31 » 09 juin 2010, 04:05

Merci Mere-Teresa. (Je m'aperçois en lisant "la manière de mettre en forme vos messages" qu'il ne faut pas utiliser la balise Couleur dans le code).
OK j'y penserai pour les prochains fois car je pense avoir comme tout débutant encore des problèmes à solutionner.
Mais je n'ai pas une réponse à mon problème de boucle et de réutilisation de la variable d'indice $si dans l'instruction "echo Input" et que j'ai du remplacer par une variable $sn pour valoriser l'attribut "value".

Code : Tout sélectionner

<?php for ($i=0; $i<$Nblignes_contrat; $i++) { $ligne_contrat = mysqli_fetch_assoc($resultat_contrat); $sn =$i + 1; extract($ligne_contrat); echo "Contrat :<input name='No' type='text' id='No' value='$sn' size='2' maxlength='2' /><br>";
Est-ce à dire que les variables d'indice sont des variables réservées?

Re: Comment mettre dans une boucle?

par pitou31 » 09 juin 2010, 03:50

Merci Mere-Teresa.
OK j'y penserai pour les prochains fois car je pense avoir comme tout débutant encore des problèmes à solutionner.
Mais je n'ai pas une réponse à mon problème de boucle et de réutilisation de la variable d'indice $si dans l'instruction "echo Input" et que j'ai du remplacer par une variable $sn pour valoriser l'attribut "value".

Code : Tout sélectionner

<?php for ($i=0; $i<$Nblignes_contrat; $i++) { $ligne_contrat = mysqli_fetch_assoc($resultat_contrat); [color=#FF0040]$sn =$i + 1;[/color] extract($ligne_contrat); echo "Contrat :<input name='No' type='text' id='No' [color=#FF0040]value='$sn'[/color] size='2' maxlength='2' /><br>";
Est-ce à dire que les variables d'indice sont des variables réservées?

Re: Comment mettre dans une boucle?

par mere-teresa » 07 juin 2010, 17:21

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Re: Comment mettre dans une boucle?

par pitou31 » 07 juin 2010, 14:20

Merci mais ça ne vient pas de l'accès aux données.
Le problème vient du fait qu'on ne peut pas utiliser l'indice de la boucle $i comme variable dans la value de l'input.
Voilà ce que je fais et ça s'affiche bien, reste à mettre le nom des variables dans valeur et c'est gagné.
<?php
for ($i=0; $i<$Nblignes_contrat; $i++)
{
$ligne_contrat = mysqli_fetch_assoc($resultat_contrat);
$sn =$i + 1;
extract($ligne_contrat);

echo "Contrat :<input name='No' type='text' id='No' value='$sn' size='2' maxlength='2' /><br>";
echo "Nom:<input name='Nom_Produit' type='text' id='Nom_Produit' value=' ' size='30' maxlength='30' />";
echo "Type: <input name='Type_Produit' type='text' id='Type_Produit' value=' ' size='30' maxlength='100' />";
echo "Numéro: <input name='No_Contrat' type='text' id='No_Contrat' size='15' value=' ' maxlength='15' /><br>";
echo "Assuré: <input name=' Assure' type='text' id=' Assure' value=' ' size='15' maxlength='50' />";
echo "P.P: <input name='P.P' type='text' id='P.P' value=' ' size='10' maxlength='10' />";
echo "P.A: <input name='P.A' type='text' id='P.A' value=' ' size='10' maxlength='10' />";
echo "Frac: <input name='Frac' type='text' id='Frac' value=' ' size='5' maxlength='2' />";
echo "Date Effet: <input name='Date_Effet' type='text' id='Date_Effet' value=' ' size='10' maxlength='10' />";
echo "Date Terme: <input name='Date_Fin' type='text' id='Date_Fin' value=' ' size='10' maxlength='10' />";
echo "Règlement: <input name='Reglement' type='text' id='Reglement' value=' ' size='10' maxlength='10' /><br>";
Tu es d'accord avec ça?

Re: Comment mettre dans une boucle?

par telnes » 07 juin 2010, 11:13

hello


l'erreur dit qu'extract attend un tableau et que tu lui passe rien
tu doit avoir un problème avec ton fetch

exécute ta requet direct dans phpmyadmin pour voir

merci

Comment mettre dans une boucle?

par pitou31 » 07 juin 2010, 08:03

Bonjour,
J'ai créé un formulaire en HTML.
Maintenant je voudrais accéder à la base de données, compléter les champs du formulaire en me servant de l'attribut "value" et afficher une ligne de formulaire par enregistrement dans une boucle.
La boucle avec "for" n'est pas acceptée et je ne sais pas pourquoi, je l'ai remplacée par While mais au lieu d'extraire 4 enregistrements je n'en ai qu'un et j'ai un warning:

Warning: extract() expects parameter 1 to be array, null given in C:\wamp\www\TESTPHP\MICHEL\Affichage_Client_Quart.php on line 253
Contrat :1
Nom: Type: Numéro: Assuré:

P.P: P.A: Frac: Date Effet: Date Terme: Règlement:
Mon bout de code correspondant:
<?php
/*for ($i=1; $i=4; $i++)*/

while ($ligne_contrat = mysqli_fetch_assoc($resultat_contrat));
{
extract($ligne_contrat);
$i=1;
echo "Contrat :<input name='No' type='text' id='No' value='$i' size='2' maxlength='2' />";

$i++;
}
?>
D'autre part je ne sais pas continuer à mettre les autres champs en provenance de deux tables de la base de données dans la boucle.
Voici par exemple les autres champs du formulaire à ajouter:
<form id="form12" name="form12" method="post" action="">
<label>Type:
<input name="Type_Produit" type="text" id="Type_Produit" size="30" maxlength="100" />
</label>
<label>Numéro:
<input name="No_Contrat" type="text" id="No_Contrat" size="15" maxlength="15" />
</label>

Merci si vous pouviez me donner un exemple et une explication.