[PHP/SQL] Insérer un numéro dans une BdD
Résolu
Slylia
Messages postés
64
Statut
Membre
-
Slylia Messages postés 64 Statut Membre -
Slylia Messages postés 64 Statut Membre -
Bonjour à tous,
Je dois créer un numéro de commande sous la forme AA-NuméroDeCommande mais dont le numéro de commande se remet à 0 lorsque l'on change d'année.
Voila un extrait de ma base de données :
J'ai fais ce code pour générer un nouveau numéro de bon de commande. Je peux faire plus simple ou convient-il ?
Le nouveau bon de commande se génère bien par contre j'ai un problème pour insérer le numéro de commande dans la table.
En effet quand j'insère la nouvelle commande, celle-ci s'insère bien mais le champ COM_Num_Com reste à 0 et une ligne vide s'ajoute en plus.
Voila le code sql de cette page :
Pouvez-vous m'aider ?
Je dois créer un numéro de commande sous la forme AA-NuméroDeCommande mais dont le numéro de commande se remet à 0 lorsque l'on change d'année.
Voila un extrait de ma base de données :
CREATE TABLE IF NOT EXISTS 'commande' (
'COM_Id' int(11) NOT NULL AUTO_INCREMENT,
'COM_Code' varchar(15) NOT NULL,
'COM_Date' date NOT NULL,
'COM_Num_Com' int(5) NOT NULL,
'COM_FRS_Id' int(11) NOT NULL,
'COM_LAB_Id' int(11) NOT NULL,
'COM_DEM_Id' int(11) NOT NULL,
'COM_Inactive' text NOT NULL,
'COM_Rec' binary(1) NOT NULL COMMENT 'Commande dans fichier ou non',
'COM_Commentaire' text NOT NULL,
PRIMARY KEY ('COM_Id'),
UNIQUE KEY 'COM_Code' ('COM_Code')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=292;
J'ai fais ce code pour générer un nouveau numéro de bon de commande. Je peux faire plus simple ou convient-il ?
$req_COM_Date = ("SELECT MAX(COM_Date) FROM commande"); //Recherche de la plus grande date
$aff_COM_Date = mysql_query($req_COM_Date, $connect) or die($req_COM_Date . " - " . mysql_error());
$affiche_COM_Date = mysql_result($aff_COM_Date,0);
$champ_COM_Date = substr($affiche_COM_Date,2,4); //On récupère la fin de l'année de la plus grande date
$annee = substr (date('y'),-2); //On récupère la fin de l'année de la date du jour
if ($annee > $champ_COM_Date) //On compare la plus grande année à l'année du jour
{
$req_COM_Num_Com = ("SELECT MAX(COM_Num_Com) FROM commande");
$aff_COM_Num_Com = mysql_query($req_COM_Num_Com, $connect) or die($req_COM_Num_Com . " - " . mysql_error());
$affiche_COM_Num_Com = mysql_result($aff_COM_Num_Com,0);
$affiche_COM_Num_Com = 0; //Si changement d'année on remet le compteur à 0
}
else
{
$req_COM_Num_Com = ("SELECT MAX(COM_Num_Com) FROM commande");
$aff_COM_Num_Com = mysql_query($req_COM_Num_Com, $connect) or die($req_COM_Num_Com . " - " . mysql_error());
$affiche_COM_Num_Com = mysql_result($aff_COM_Num_Com,0);
$affiche_COM_Num_Com = $affiche_COM_Num_Com + 1; //Sinon on augmente de 1
}
Le nouveau bon de commande se génère bien par contre j'ai un problème pour insérer le numéro de commande dans la table.
En effet quand j'insère la nouvelle commande, celle-ci s'insère bien mais le champ COM_Num_Com reste à 0 et une ligne vide s'ajoute en plus.
Voila le code sql de cette page :
//Sélection et connexion à la base de données commande
include '../connexion.php';
session_start();
$COM_Code = isset($_GET['COM_Code']) ? $_GET['COM_Code'] : '';
$COM_Date = isset($_GET['COM_Date']) ? $_GET['COM_Date'] : '';
$laboratoire = isset($_GET['laboratoire']) ? $_GET['laboratoire'] : '';
$demandeur = isset($_GET['demandeur']) ? $_GET['demandeur'] : '';
$fournisseur = isset($_GET['fournisseur']) ? $_GET['fournisseur'] : '';
// Insertion de la nouvelle commande
$res_insertCommande = "INSERT INTO commande (COM_Id, COM_Code,
COM_Date,
COM_FRS_Id,
COM_LAB_Id,
COM_DEM_Id,
COM_Inactive, COM_Rec )
VALUES ('', '$COM_Code',
'$COM_Date',
'$fournisseur',
'$laboratoire',
'$demandeur',
'O','0')";
$insertCommande = mysql_query($res_insertCommande, $connect) or die($res_insertCommande . " - " . mysql_error());
$req_commande = "SELECT COM_Id FROM commande WHERE COM_Code='$COM_Code' AND COM_DEM_Id='$demandeur' AND COM_FRS_Id='$fournisseur'";
$commande = mysql_query($req_commande, $connect) or die($req_commande . " - " . mysql_error());
while ($tab = mysql_fetch_array($commande))
{
$COM_Id = $tab['COM_Id'];
}
?>
<META http-equiv="refresh" content="0; URL=affect_analyse.php?COM_Id=<?php echo $COM_Id ; ?>">
Pouvez-vous m'aider ?
A voir également:
- [PHP/SQL] Insérer un numéro dans une BdD
- Insérer une vidéo dans powerpoint - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numero prive - Guide
- Insérer signature word - Guide
- Insérer un espace insécable dans word - Guide