IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Projet PHP : Génération de numéro de Références et Stockage [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut Projet PHP : Génération de numéro de Références et Stockage
    Bonjour,
    J'écris un script qui doit à partir d'un formulaire et plusieurs indications générer une Référence et l'ajouter dans la base de données.
    J'ai parfaitement réussis à faire l'ajout de données dans la base.

    Maintenant j'essaye de rajouter une fonction modifier qui permet d'éditer une information de la base de donnée en inscrivant un numéro d'Id (qui soit en dit en passant est un champ du tableau en auto increment).

    J'arrive à faire marcher la fonction ajout séparément de la fonction edit et inversement.

    Le code de chacune des fonctions est bon , mais j'aimerai maintenant les faire fonctionner ensemble.

    A savoir :

    Si l'utilisateur rentre les champs :
    -Year
    -Project
    -Document Number
    -Entity
    -Kind

    Alors il y aura un Insert dans la base de données et une génération de Référence.

    Si l'utilsateur rentre les champs :
    -Year
    -Project
    -Document Number
    -Entity
    -Kind
    -Id

    Alors , la variable $edit prendra pour valeur l'id rentrée par l'utilateur , et ira modifier les champs Year , Project etc.

    Voila le code qui fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    if (isset($_POST['Edit'])){
     
    	if ($_POST['Edit'] != "") {
    	print 'Edit Activé';
    	$Edit = $_POST['Edit'];
    	print ' Le Champ à modifier est :';
    	print $Edit;
     
     
     
     
     
    			if (isset($_POST['Year'])) {
      		if ($_POST['Year'] != "") {
      		$Year = $_POST['Year'];
    			mysql_query("Update iso Set Year ='$Year' where Id =$Edit ");}}
     
    			if (isset($_POST['Project'])) {
      		if ($_POST['Project'] != "") {
      		$Project = $_POST['Project'];
    			mysql_query("Update iso Set Project ='$Project' where Id =$Edit ");}}
     
    			if (isset($_POST['DocNumber'])) {
      		if ($_POST['DocNumber'] != "") {
      		$DocNumber = $_POST['DocNumber'];
    			mysql_query("Update iso Set DocNumber ='$DocNumber' where Id =$Edit ");}}
     
    			if (isset($_POST['Entity'])) {
      		if ($_POST['Entity'] != "") {
      		$Entity = $_POST['Entity'];
    			mysql_query("Update iso Set Entity ='$Entity' where Id =$Edit ");}}
     
    			if (isset($_POST['Kind'])) {
      		if ($_POST['Kind'] != "") {
      		$Kind = $_POST['Kind'];
    			mysql_query("Update iso Set Kind ='$Kind' where Id =$Edit ");}}
     
     
    	}}

    En gros il y'a deux solutions pour l'utilisateur ! Si il rentre un Id dans le formulaire alors toutes les autres données produiront un UPDATE dans la BDD , si l'utilateur rentre toutes les données mais pas Id alors il y'a aura un INSERT .

    Maintenant j'aimerai donc faire une fonction if ou switch qui permettent au compilateur de voir dans quel cas l'users se trouve.

    Petit Schéma :

    Si Users mets un Id alors $Year, $Entity etc. serviront à UPDATE la BDD

    Si Users ne mets pas d'Id alors $Year , $Entity etc. seront dans un INSERT dans la BDD.

    Comment imbriquez les deux alors ?

    Voici mes deux bouts de codes séparément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
      <title>Hello!</title>
    </head>
     
    <body>
    <br><br>
    <form method="POST" action="ajout.php">
    Enter Year
    <input type="text" name="Year"><br>
    Enter Project        
    <input type="text" name="Project"><br>
    Enter Document Number
    <input type="text" name="DocNumber"><br>
    Enter Entity
    <input type="text" name="Entity"><br>
    Enter Kind
    <input type="text" name="Kind"><br>
    Edit : (Id)
    <input type="text" name="Edit"><br>
    <input type="submit" name="submit" value="Enregistrer">
     
     
     
     
     
     
    <?
     
    $db = mysql_connect('localhost','root','root') or die ("Erreur de connexion");
    mysql_select_db('mysql',$db) or die ("erreur de connexion base");
     
    $req = mysql_query("SELECT Id,Year,Project,DocNumber,Entity,Kind,Ref from iso") or die ("Erreur SQL");
     
     
     
     
     
     
    if (isset($_POST['Edit'])){
     
    	if ($_POST['Edit'] != "") {
    	print 'Edit Activé';
    	$Edit = $_POST['Edit'];
    	print ' Le Champ à modifier est :';
    	print $Edit;
     
     
     
     
     
    			if (isset($_POST['Year'])) {
      		if ($_POST['Year'] != "") {
      		$Year = $_POST['Year'];
    			mysql_query("Update iso Set Year ='$Year' where Id =$Edit ");}}
     
    			if (isset($_POST['Project'])) {
      		if ($_POST['Project'] != "") {
      		$Project = $_POST['Project'];
    			mysql_query("Update iso Set Project ='$Project' where Id =$Edit ");}}
     
    			if (isset($_POST['DocNumber'])) {
      		if ($_POST['DocNumber'] != "") {
      		$DocNumber = $_POST['DocNumber'];
    			mysql_query("Update iso Set DocNumber ='$DocNumber' where Id =$Edit ");}}
     
    			if (isset($_POST['Entity'])) {
      		if ($_POST['Entity'] != "") {
      		$Entity = $_POST['Entity'];
    			mysql_query("Update iso Set Entity ='$Entity' where Id =$Edit ");}}
     
    			if (isset($_POST['Kind'])) {
      		if ($_POST['Kind'] != "") {
      		$Kind = $_POST['Kind'];
    			mysql_query("Update iso Set Kind ='$Kind' where Id =$Edit ");}}
     
     
    	}}
     
     
    if (isset($_POST['Year'])) {
    if ($_POST['Year'] != "") {
     
    	 if (isset($_POST['Project'])) {
       if ($_POST['Project'] != ""){
     
          if (isset($_POST['DocNumber'])) {
    			if ($_POST['DocNumber'] != ""){
     
             if (isset($_POST['Entity'])) {
    				 if ($_POST['Entity'] != ""){
     
    				 		if (isset($_POST['Kind'])) {
                if ($_POST['Kind'] != ""){
     
     
                      $Year = $_POST['Year'];
                      print 'Year : ';
    									print $Year;
    									print '<br>';
     
     
                      $Project = $_POST['Project'];
                      print 'Project : ';
    									print $Project;
    									print '<br>';
     
                      $DocNumber = $_POST['DocNumber'];
                      print 'DocNumber : ';
                      print $DocNumber;
                      print '<br>';
     
                      $Entity = $_POST['Entity'];
                      print 'Entity : ';
                      print $Entity;
                      print '<br>';
     
                      $Kind = $_POST['Kind'];
                      $Kindd = "-".$Kind;
                      print 'Kind : ';
    									print $Kind;
    									print '<br>';
     
    									$Ref = $Entity.$Project.$Kindd.$DocNumber;
    									print' Ref = ';
    									print $Ref;
    									print'<br>';
     
     
     
    $sqlinsert = "INSERT INTO iso (Id,Year,Project,DocNumber,Entity,Kind,Ref) VALUES ('','$Year','$Project','$DocNumber','$Entity','$Kind','$Ref')";									
    mysql_query($sqlinsert)or die(mysql_error()."<br />".$sqlinsert);									
    				}}
    			}}
    		}}
    	}}
    }}
     
     
    else {
     
    print 'Il manque des valeurs !';}
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    print'<br><br><br>';
     
     
     
     
    $output = '<TABLE BORDER=5 BORDERCOLOR="blue">';
       $output .= '<tr>';
       $output .= '<td><div align="center"></div>  <b>Id</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>Year</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>Project</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>DocNumber</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>Kind</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>Entity</b>  </td>';
       $output .= '<td><div align="center"></div>  <b>References</b>  </td>';
     
     
    while ( $resultat = mysql_fetch_array($req))
    {
       $output .= '<tr>';
     
     
       $output .= '<td><div align="center">'.$resultat['Id'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['Year'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['Project'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['DocNumber'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['Kind'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['Entity'].'</div></td>';
       $output .= '<td><div align="center">'.$resultat['Ref'].'</div></td>';
     
       $output .= '</tr>';
    }
    $output .= '</table>';
     
     
    echo $output;
     
     
     
     
    ?>
     
     
    </body>
     
    </html>
    Ma question finale est donc : comment imbriquez les deux cas !

    Car si je laisse le code comme ceci , si je mets un ID pour faire juste un UPDATE d'une ligne de la bdd, l'update fonctionne mais en plus je fais un INSERT , je me retrouve donc avec une ligne de plus dans ma BDD qui ne devrait pas être là !


    Auto-Edit : Esqu'on ne pourait pas utiliser la technique du SWITCH ?

    Merci d'avance

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je ne répond pas à la question, mais je m'interroge sur l'utilisabilité de ce genre de pratique.
    Pour moi, un insert est différent d'un update Et un utilisateur qui veut inserer doit savoir qu'il insere et si il veut modifier il doit savoir qu'il modifie. Je pencherais plutot sur l'approche 1 écran = 1 action que tout dans la même fenetre.
    Se baser sur la présence ou non d'une clef dans un formulaire est un peu louche à mon goût...

    Maintenant si c'est imposé dans ton cahier des charges ou si tu me dis que cette méthode est justifiée par des critères ergonomiques pourquoi pas...

  3. #3
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    Tu me dis donc en quelque sorte , qu'il vaudrait mieux que je sépare bien les choses ?

    Je pourrai par exemple faire un bouton Modifier qui envoie sur une autre page avec les champs à renseigner pour la modification ?

    Tu as concept de navigation en tête ? Qui pourrait m'aider ?

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Je t'avoue que je suis admiratif devant un tel exposé, et au final je n'ai pas compris le problème !

    J'imagine que si tu fais quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if($id == "") {
       // La variable id est vide, on fait un insert
       // TODO: ajouter le code pour l'insert
    }
    else {
       // La variable id contient une valeur, on fait un update
       // TODO: Faire un select pour vérifier que l'id est correct.
       // TODO: Si l'id est correct, faire un update, sinon, faire un insert
    }
    Ca devrait le faire !
    K

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par Mr N.
    Je ne répond pas à la question, mais je m'interroge sur l'utilisabilité de ce genre de pratique.
    Pour moi, un insert est différent d'un update Et un utilisateur qui veut inserer doit savoir qu'il insere et si il veut modifier il doit savoir qu'il modifie. Je pencherais plutot sur l'approche 1 écran = 1 action que tout dans la même fenetre.
    Se baser sur la présence ou non d'une clef dans un formulaire est un peu louche à mon goût...

    Maintenant si c'est imposé dans ton cahier des charges ou si tu me dis que cette méthode est justifiée par des critères ergonomiques pourquoi pas...
    +1
    En général, il y a un écran par type d'action. Pour faire un update, il faut au préalable selectionner l'enregistrement, par le biais d'une liste par exemple. Ca permet en plus au niveau de l'update de visualiser les informations de la base, et de les modifier au lieu de les écraser.

    Si ton système est un système de mise à jour de base de données à la chaine, ça peut justifier l'emploi d'une telle méthode comme celle que tu décris, sinon, il y a un gros problème d'ergonomie
    K

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Oui, je préfère nettement le lien modifier qui amene sur une page bien distincte. L'inconvénient, c'est que c'est moins rapide => 1 clic de plus pour l'utilisateur, mais il y a plein d'avantages :
    - l'utilisateur sait ce qu'il fait : il ne doit pas se poser les questions
    + Dois-je remplir ce champ-ci ?
    + Est-ce un formulaire d'insertion ? Est-ce que ca va modifier ou inserer ?
    + ...
    - Tu n'as pas à mettre une note explicative (Si vous voulez.... remplisser id....sinon.... ne remplissez pas.....)
    - ... (j'en passe et des meilleurs)


    Pour moi tu affiche ton tableau de données, tu rajoute une colonne actions = supprimer/inserer qui amene sur une page de suppression ou modification
    et en dessous de ton tableau, soit tu met directement le formulaire d'insertion, soit tu amene sur une page d'insertion

  7. #7
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    Si tu peux me proposer une architecture en quelque mots je suis prenneur

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    recherche.php -> propose des champs de recherche, propose aussi un lien vers ajouter_enreg.php

    affichage_liste.php -> affiche les données existantes par rapport à la recherche, eventuellement avec une pagination, permet également de revenir sur la recherche, ou à partir d'une ligne de la liste, de consulter le detail ( voir_enreg.php?id=$id ), de modifier l'enreg ( modifier_enreg.php?id=$id ) et de supprimer l'enreg ( tu as dû deviner )

    ajouter_enreg.php -> propose le formulaire d'ajout SANS L'ID, et pointe vers une page ajouter_enreg_do.php qui s'occupe de l'insert, et qui reviens sur la liste ( penser à mettre des variables de pagination et de recherche en session pour ne pas perdre sa liste )

    etc, je pense que tu visualises la chose
    K

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Si je te propose le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <body>
        <table>
           <tr><td>Nom 1</td><td><a href="?action=modifier&id=123">modifier</a></td></tr>
           <tr><td>Nom 2</td><td><a href="?action=modifier&id=456">modifier</a></td></tr>
        </table>
        <a href="?action=inserer">Ajouter un nouveau truc</a>
    </body>
    Tu remarque que j'utilise une variable particulière qui est action
    Dans ta page il te suffit de faire certaines actions en fonction de la valeur de cette variable en prenant en compte l'affichage par defaut....

    Il y a plein de méthodes différentes, toutes plus complexes les unes que les autres, toutes plus propres les unes que les autres, à toi de faire ton choix en fonction de ton experience...

  10. #10
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Ce que tu décris ressemble à un code de framework, donc si tu pars de ce principe, autant utiliser un framework qui est assez populaire : Fusebox
    K

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Euh ouais, mais je suis assez contre l'idée de pousser les débutants (ou presque) vers un framework où ils n'ont qu'à se tourner les pouces... Il faut qu'ils fassent des erreurs, que l'experience se forme, que la curiosité s'aiguise et ils se tourneront d'eux même vers le travail prémâché (pour des critères autres que le prémâchage, cela va sans dire)
    En tout cas merci pour le lien

    EDIT: Et même, au lieu de pointer vers un framework, il vaut mieux pointer vers une méthode => MVC & co

  12. #12
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    Je vais faire une page Affichage qui servira aussi aux ajouts , et je vais mettre un lien pour le formulaire de modification ! Ca sera simple et efficace.

    J'ai une petite question technique maintenant :

    Pour générer mes références sur la page ajout je faisais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $Year = $_POST['Year'];
                      print 'Year : ';
    									print $Year;
    									print '<br>';
     
     
                      $Project = $_POST['Project'];
                      print 'Project : ';
    									print $Project;
    									print '<br>';
     
                      $DocNumber = $_POST['DocNumber'];
                      print 'DocNumber : ';
                      print $DocNumber;
                      print '<br>';
     
                      $Entity = $_POST['Entity'];
                      print 'Entity : ';
                      print $Entity;
                      print '<br>';
     
                      $Kind = $_POST['Kind'];
                      $Kindd = "-".$Kind;
                      print 'Kind : ';
    									print $Kind;
    									print '<br>';
     
    									$Ref = $Entity.$Project.$Kindd.$DocNumber;
    									print' Ref = ';
    									print $Ref;
    									print'<br>';
    Et maintenant je dois le faire dans la page Modifier . Mais je ne peux utiliser la même technique car l'user n'est pas obligé de réinscrire tous les champs , il peut si il le souhaite ne modifier que 1 ou 2 champs !

    Je cherche à faire une méthode par la BDD !

    C'est à dire en Algo quelque chose qui ressemble à ceci :

    $Ref = from iso ($Entity.Project.$Kind.$DocNumber where Id = $Edit;

    En gros quelque chose dans ce genre. On pourrait peut être faire avec une variable temp.
    $temp récupererait les variables de la BDD ($Year etc.) ferait la concaténation, et dans un deuxième temps , $Ref (de la BDD) where Id= $Edit prendrait la valeur $temp.

    Qu'en pensez vous ? Je ne connais pas la syntaxe pour réaliser ceci !

    Edit pour en haut : J'veux apprendre ^^ FrameWork pas pour toute suite ! On ne court pas avant de savoir marcher !

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai rien compris à quoi servait cette reference...
    pourquoi tu la construit à partir du formulaire ? à quoi elle te sert ensuite ?
    C'est pas très clair là. Quel est le besoin fonctionnel de cette reference ?

  14. #14
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    En fait les users de ma boite travaille sur des projets ! Et dans le cadre du passage aux normes ISO , nos projets , produits etc. doivent avoir une référence ISO .

    En gros l'utilisateur entre les informations, et un numéro de référence est générer, dans notre entreprise on appellera les produits non pas par leurs noms mais par leurs références .

    Tu vois ce que je veux dire ?

    La Reférence ISO vient de la concaténation de plusieurs informations dans un ordre précis. Cette référence sera stocké dans la BDD et nous permettra pasr la suite d'identifier des produits.


    Edit : d'ailleurs on peut pas mettre un avatar sur ce forum ? :p

  15. #15
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Est ce que ref est modifiable par l'utilisateur ?
    Sur le formulaire de modification tu affioche bien les valeurs originals pour l'utilisateur, ces valeurs sont prises dans la bd, donc tu peux connaitre la reference.... ?

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Une suggestion : rajouter une action dupliquer. C'est à dire prendre un enregistrement comme exemple, dont les données sont préremplies, et qui provoque un nouvel INSERT. Je le fais systématiquement pour mes formulaires de configuration, et ça fait gagner un temps fou à l'utilisateur quand il doit créer des configurations presque identiques.

  17. #17
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    La référence doit être généré par le script. Si l'users décide de modifier Year et Entity sur l'Id numéro 20 alors la référence ne sera plus à jour puisque je ne connais pas la syntaxe pour la recalculer via la BDD et la remettre dedans.

    Je veux pouvoir récupérer dans une variable la concaténation des $Year $Entity etc. de ma BDD et ensuite insérer cette variable dans la cellule Ref pour écraser l'ancienne, faire un update quoi !

    Je ne sais pas en fait récupérer les données une à une de la BDD et les concaténer en même temps !

    Une suggestion : rajouter une action dupliquer. C'est à dire prendre un enregistrement comme exemple, dont les données sont préremplies, et qui provoque un nouvel INSERT. Je le fais systématiquement pour mes formulaires de configuration, et ça fait gagner un temps fou à l'utilisateur quand il doit créer des configurations presque identiques.
    Tu peux me présenter un peu comment cela fonctionne au niveau du code et de sa syntaxe ?

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Jimmy_S
    Je ne sais pas en fait récupérer les données une à une de la BDD et les concaténer en même temps !


    Tu sais interroger ta base pour recuperer les données puisque tu arrives à afficher ton tableau (apperemment)
    La concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var = $var1.$var2.$var3;
    Rien de plus simple, tu as toutes les cartes en main

  19. #19
    Membre régulier Avatar de Jimmy_S
    Inscrit en
    Octobre 2005
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 214
    Points : 85
    Points
    85
    Par défaut
    mysql_query("SELECT Year,Project,DocNumber,Entity,Kind,Ref from iso where Id = $Edit)

    $Year = Year from iso where id = $Edit

    ?

    Je ne sais pas faire , enfin je ne connais pas la syntaxe , tu peux m'éclaircir un peu tout ça dans ma petite tête ?

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par Jimmy_S
    Tu peux me présenter un peu comment cela fonctionne au niveau du code et de sa syntaxe ?
    En fait, c'est très simple : tu commences ton script comme une action 'modifier', c'est-à-dire en récupérant les données dans la bdd, puis tu enregistres comme une action 'créer', c'est-à-dire comme un INSERT. Il faut bien entendu, comme pour un INSERT ou UPDATE classique, vérifier l'absence de doublons (pas d'enregistrement avec le même nom, par exemple).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 7 12345 ... DernièreDernière

Discussions similaires

  1. [PHP-JS] Préformatage numéro de téléphone
    Par ChrisColumbus dans le forum Langage
    Réponses: 4
    Dernier message: 21/11/2006, 13h08
  2. Afficher le label dans une bibliographie à la place du numéro de référence
    Par nocoment dans le forum Bibliographies - Index - Glossaires
    Réponses: 1
    Dernier message: 21/09/2006, 16h31
  3. Projet PHP
    Par Nacros dans le forum XMLRAD
    Réponses: 9
    Dernier message: 09/04/2006, 14h46
  4. Génération de numéro de série
    Par shadeoner dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 06/04/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo