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

Fermé
air - 27 févr. 2009 à 11:59
 bip - 4 mars 2009 à 21:43
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
A voir également:

15 réponses

hatonis Messages postés 34 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010
27 févr. 2009 à 12:05
Bonjour,

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

Ciao!
0
jvai essayé et j'te di
merci de la rep
0
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 34 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010
27 févr. 2009 à 12:30
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
loll ok jvai essayé ca
0
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 34 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010
27 févr. 2009 à 12:42
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
o pa grav ;)
jvai test ca
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 févr. 2009 à 12:46
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
chui pa tetu
sa semble marché si sa enregistre P0, P1 , P2 ...
0
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
Alain ta technique (je croi) en concaténan le P sa marchai ossi
mai enregistrai pour tous P00
0
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 févr. 2009 à 14:18
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
ok mai le i d'où il sort ??? c'est le compteur ?
jle déclare comment ??
0
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 févr. 2009 à 14:40
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
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 févr. 2009 à 10:39
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
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
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 mars 2009 à 14:00
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
ok merci sa marche !
ya un algo en php pour ca ??? si oui donnez le moi svp
0
??
0