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
Configuration: Windows Vista
Internet Explorer 7.0

15 réponses

  1. hatonis Messages postés 38 Statut Membre
     
    Bonjour,

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

    Ciao!
    0
    1. air
       
      jvai essayé et j'te di
      merci de la rep
      0
  2. 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
  3. 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
    1. air
       
      loll ok jvai essayé ca
      0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. air
       
      o pa grav ;)
      jvai test ca
      0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. air
       
      chui pa tetu
      sa semble marché si sa enregistre P0, P1 , P2 ...
      0
    2. 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
  8. air
     
    Alain ta technique (je croi) en concaténan le P sa marchai ossi
    mai enregistrai pour tous P00
    0
  9. 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
  10. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. air
       
      ok mai le i d'où il sort ??? c'est le compteur ?
      jle déclare comment ??
      0
  11. 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
  12. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. 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
  13. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  14. 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
  15. bip
     
    bon oublions la lettre P
    donnez moi juste le code pour pouvoir incrémenter des chiffres de 1 en 1 svp
    merci
    0
  16. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. bip
       
      ok merci sa marche !
      ya un algo en php pour ca ??? si oui donnez le moi svp
      0
      1. bip > bip
         
        ??
        0