[PHP/SQL] Insérer un numéro dans une BdD

Résolu/Fermé
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 - 22 déc. 2010 à 11:03
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 - 22 déc. 2010 à 11:37
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 :
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:

1 réponse

Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 1
22 déc. 2010 à 11:37
J'ai finalement réussis à résoudre mon problème
0