Est-ce normal que sa n'enregistre pas (enPHP)

air -  
 bip -
Bonjour,
dans ma table client, je voudrais enregistrer les infos du client saisi dans un form et un NUM doit s'enregistrer automatiquement du style P001, P002, P003... mais le NUM sa enregistre P00 pour tous

voila ma page form

<form method="POST" action="add.php">
<center>
<input type="hidden" name="num" size="10" />
<input type="text" name="nom" size="20" value="nom" maxlength="35" onClick="if (this.value=='nom') this.value=''">
...
<input type="submit" value="Envoyer" name="envoyer">
</center>

et la page add.php

<?php

$num = $_POST['num'];

for ($num = 'P00'; $num <= 'PP'; $num ++)
{
echo $num;
}

$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";

?>

merci de votre aide

15 réponses

hatonis Messages postés 38 Statut Membre
 
Bonjour,

Ton insert into ne devrait pas plutot etre dans la boucle for...?

Ciao!
0
air
 
jvai essayé et j'te di
merci de la rep
0
air
 
voila je vien de faire et ca

for ($num = 'P00'; $num <= 'PP'; $num ++)
{
echo $num;

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";



// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

et lolll sa a enreistrer 100 clients avec chaqu'un P01, P02 ... P99

je pense qu'on est pas loin de la solution ^^
0
hatonis Messages postés 38 Statut Membre
 
Bonjour,

Je croyais que c'est ce que tu voulais^^.
En supposant que tu veuilles que P00 etc... soientt tous enregistrer dans l'attribut NUM du même client. Tu peux créer une variable $TOTAL_NUM qui à l'intérieur de la boucle ferait $TOTAL_NUM.=$NUM (cette commande est équivalent à
$TOTAL_NUM = $TOTAL_NUM . $NUM).

Mais bon j'ai peut etre mal compris ce que tu voulais...

Ciao!
0
air
 
loll ok jvai essayé ca
0
air
 
je fai ca
for ($num = 'P0'; $num <= 'PP'; $num ++)
{

$TOTAL_NUM.=$num;

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

et ca fair la mm chose :(
sa enregistre encore 10 fois le mm clients avec P0, P1, P2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hatonis Messages postés 38 Statut Membre
 
Bonjour,

Ma réponse était incomplète. désolé. Le insert into tu le sors de la boucle for.
Et avant la boucle, tu fais $TOTAL_NUM = "";
Et dans le insert, tu remplaces $NUM par $TOTAL_NUM.

Désolé d'avoir été un peu rapide en explication.

Ciao!
0
air
 
o pa grav ;)
jvai test ca
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Cela s'appelle être têtu !

Dans un autre post on ta dit mille fois que tu ne peux pas faire ++ sur une chaine mais seulement sur un nombre et on retrouve encore ce code, c'est normal que ça ne marche pas.
0
air
 
chui pa tetu
sa semble marché si sa enregistre P0, P1 , P2 ...
0
air
 
chui pa tetu
sa semble marché si sa enregistre P0, P1 , P2 ...
i faut juste le moyen pour que sa enregistre pour un client
un par un c tt
0
air
 
Alain ta technique (je croi) en concaténan le P sa marchai ossi
mai enregistrai pour tous P00
0
air
 
jvien de faire ca

for ($num = '000'; $num <= '5'; $num ++)
{

$num = 'p'.$num;

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

sa enregistre un par un mais chak client a P000, P000, P000
0
Alain_42 Messages postés 5413 Statut Membre 894
 
le fait de mettre '0' transforme en chaine

il faut:

for ($i =0; $i <= 5; $i ++)
{

$num = ${'p'.$i};

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
} 
0
air
 
ok mai le i d'où il sort ??? c'est le compteur ?
jle déclare comment ??
0
air
 
car il me dit


Notice: Undefined variable: p0 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55

Notice: Undefined variable: p1 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55

Notice: Undefined variable: p2 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55

Notice: Undefined variable: p3 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55

Notice: Undefined variable: p4 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55

Notice: Undefined variable: p5 in D:\EasyPHP 3.0\www\SiteAirQualite\add.php on line 55
0
Alain_42 Messages postés 5413 Statut Membre 894
 
oui $i c'est le compteur, tu n'as pas besoin de le déclarer, c'est juste une variable de travail por la boucle for, tu peux la baptiser comme tu veux

for ($i =0; $i <= 5; $i ++)
{

$num = 'p'.$i;

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$num')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
} 
0
air
 
alors là cé bon ya plus d'erreur sauf que sa ajoute 5 fois le mm client avec P0, P1, P2 P3 P4 P5
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Ben c'est normal, d'après ton code, tu fais un petit formulaire ou tu saisis un client et par une boucle for

de 5 pas tu fais l'enregistrement de ce même client

<form method="POST" action="add.php">
<center>
<input type="hidden" name="num" size="10" /> // la un champ caché sans valeur ça ne sert à rien
<input type="text" name="nom" size="20" value="nom" maxlength="35" onClick="if (this.value=='nom') this.value=''">
...
<input type="submit" value="Envoyer" name="envoyer">
</center>

et la page add.php

<?php

$num = $_POST['num']; //comme tu n'as pas mis de value= dans ton champ caché num tu ne récupéres rien




Je crois comprendre que tu veux enregister un client et que chaque client ait dans ta table une reférence num P01 P02 etc.. qui s'incremente automatiquement ?
0
bip
 
oui c'est exactement ca je veux enregister un client et que chaque client a dans la table une reférence num P01 P02 etc.. qui s'incremente automatiquement
0
bip
 
bon oublions la lettre P
donnez moi juste le code pour pouvoir incrémenter des chiffres de 1 en 1 svp
merci
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Ben alors la c'est encore plus simple:

dans ta table "info_tbl" tu mets le champ num en INT , Autoincrement, primary Key

et ta requette devient:

$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','')";


pas de valeur pour num, mysql fera le boulot tout seul il incrementera de 1 à chaque enregistrement
0
bip
 
ok merci sa marche !
ya un algo en php pour ca ??? si oui donnez le moi svp
0
bip > bip
 
??
0