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:
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:
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 :lol: