enregistrement d'une table

kasim974
Invité n'ayant pas de compte PHPfrance

02 avr. 2010, 15:37

Bonjour,

Bonjour,

J'ai un problème sur un script Php. J'espère que vous pourriez m'aidé :)

J'ai un formulaire de saisi, afin de saisir un livre (l'enregistrement du livre dans la base):
Image

Je voudrais, lors de l'enregistrement du livre, que celui-ci ne crée pas un autre champs (->Par exemple, si je renseigne le formulaire en mettant: "Littérature", celui-ci va me recréé un champs littérature dans ma table![aprés je me retrouve avec deux champs "littérature dans la table]

Pareil, lors de la saisi d'un auteur(enregistrement d'un auteur), celui-ci me crée un autre auteur, alors que l'auteur saisie est déjà présent. (->donc je me retrouve avec 2 auteur idem)

->Clé primaire de la table livre:CodeLivre
Clé étrangére de la table livre: CodeAuteurLivre,CodeGenreLivre

->Cléprimaire de la table genre: CodeGenre

Voici le script PhP:
<?php
	if(@$_POST['bouton']=="Retour à l'accueil")
	{
	header("Location: accueil.htm");
	}
?>
	
<html>
 <body>
 <?php
 
// Affectation des valeurs saisies dans des variables
$TitreLivre=$_POST['TitreLivre'];
$PrixLivre=$_POST['PrixLivre'];
$EditeurLivre=$_POST['EditeurLivre'];
$AnneeLivre=$_POST['AnneeLivre'];
$LangueLivre=$_POST['LangueLivre'];
$EditeurLivre=$_POST['EditeurLivre'];
			
$NomGenre=$_POST['NomGenre'];
			
$NomAuteur=$_POST['NomAuteur'];
$PrenomAuteur=$_POST['PrenomAuteur'];
$NationaliteAuteur=$_POST['NationaliteAuteur'];

// Connexion au serveur MySQL
$db=mysql_connect("localhost","root","root") or die("erreur de connexion".mysql_error());
	
// Ouverture de la base Bibliothéque
mysql_select_db("bibliotheque",$db) or die("erreur de connexion à la base Bibliothéque");
			
// Requête d'insertion des valeurs dans la table Adhérent
$reqC="INSERT INTO livre(CodeLivre,TitreLivre,PrixLivre,EditeurLivre,AnneeLivre,LangueLivre) 
		   VALUES('','$TitreLivre','$PrixLivre','$EditeurLivre','$AnneeLivre','$LangueLivre')";

$reqD="INSERT INTO genre (CodeGenre,NomGenre) VALUES ('','$NomGenre')";
		   
$reqE="INSERT INTO auteur (CodeAuteur,NomAuteur,PrenomAuteur,NationaliteAuteur) 
		   VALUES ('','$NomAuteur','$PrenomAuteur','$NationaliteAuteur')";

// Exécution des requête
			
mysql_query($reqC) or die("erreur".mysql_error());
			
mysql_query($reqD) or die("erreur".mysql_error());
			
mysql_query($reqE) or die("erreur".mysql_error());


			
// Message de contrôle 
Echo "Vos enregistrement à étés prises en compte";
		
// Fermeture de la connexion à MySQL
			mysql_close();
					
	?>
 </body>
</html>
-Pourquoi, il recrée un autre champs??
-Comment éviter cela??
-Quelqu'un a une idée??

merci d'avance...

Eléphanteau du PHP | 27 Messages

02 avr. 2010, 16:14

Bonjour

pourquoi ne pas insérer un champ 'genre' dans ta table livre qui ferait référence à ton ID unique 'CodeGenre'

ainsi l'insert suivant n'aurait plus lieu d'être
INSERT INTO genre ...
Développeur PHP à temps perdu ...
PHP Maximus CMS , un cms plus petit PHP Minimus, un cms minimaliste PHP Nanomus, un pare feu pour votre site PHP Firewall