doublons dans la base de donnée

Eléphant du PHP | 150 Messages

05 mai 2011, 16:44

Bonjour a tous,
Voici mon problème : J'ai fait un code en php pour ajouter des élèves dans ma base de donnée (phpMyAdmin) et le formulaire fonctionne mais dans ma base de donnée il m'ajoute deux fois la personne avec tous ses paramètres.aurais-je fait une erreur dans mon code ?
<?php
	$nom = isset($_GET['nom']) && !empty($_GET['nom'])? $_GET['nom'] : null;
	$idClasse = isset($_GET['idClasse']) && !empty($_GET['idClasse'])? $_GET['idClasse'] : null;
	$prenom = isset($_GET['prenom']) && !empty($_GET['prenom'])? $_GET['prenom'] : null;
	$adresse = isset($_GET['adresse']) && !empty($_GET['adresse'])? $_GET['adresse'] : null;
	$code_postal = isset($_GET['code_postal']) && !empty($_GET['code_postal'])? $_GET['code_postal'] : null;
	$ville = isset($_GET['ville']) && !empty($_GET['ville'])? $_GET['ville'] : null;
	$portable = isset($_GET['portable']) && !empty($_GET['portable'])? $_GET['portable'] : null;
	$mail = isset($_GET['mail']) && !empty($_GET['mail'])? $_GET['mail'] : null;
	$date_de_naissance = isset($_GET['date_de_naissance']) && !empty($_GET['date_de_naissance'])? $_GET['date_de_naissance'] : null;

		// on se connecte à notre base
	   // $base = mysql_connect ('serveur', 'login', 'pass');  
		//mysql_select_db ('ma_base', $base) ;  
		mysql_select_db("bd_eleves", @mysql_connect("localhost","root","")) or die(mysql_error());
?>
<?php

			// enregistrer la saisie du formulaire
		if (isset($_GET['action']) && $_GET['action']=='Enregistrer')
		{
			//
			$message = "";
			if (empty($nom)) $message .= "<p>Le nom est obligatoire !</p>";
			if (empty($prenom)) $message .= "<p>Le prenom est obligatoire !</p>";
			if (empty($idClasse)) $message .= "<p>La classe est obligatoire !</p>";
			if (empty($message))
			{
			  $sql = 'INSERT INTO eleve (nom, prenom, idClasse, adresse, code_postal, ville, portable, mail, date_de_naissance) VALUES ("'.$nom.'", "'.$prenom.'", "'.$idClasse.'", "'.$adresse.'", "'.$code_postal.'", "'.$ville.'", "'.$portable.'", "'.$mail.'", "'.$date_de_naissance.'")'; 
			  
			  mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
			  //echo $sql;
						
						if (!@mysql_query($sql)) $message .= "<li>".$nomEleve." => Erreur : ".mysql_error()."</li>";
				if (empty($message)) $message = "Enregistrement effectué avec succès";
                else $message = "<p>Les Erreurs suivantes sont rencontrées :</ul>" . $message . "</ul></p>";
			}
				   
		}				
		// fin de connexion
		mysql_close();
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajout d'élève dans la base</title>
<link rel="stylesheet" type="text/css" href="calendrier.css">
<script type="text/javascript" src="calendrier.js"></script>
  <link href="/index.php?format=feed&type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
  <link href="/index.php?format=feed&type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
  <script type="text/javascript" src="/media/system/js/mootools.js"></script>
  <script type="text/javascript" src="/media/system/js/caption.js"></script>
	<link rel="stylesheet" type="text/css" href="css/content.css">
	<link rel="stylesheet" type="text/css" href="css/current.css">
	<link rel="stylesheet" type="text/css" href="css/form.css">
	<link rel="stylesheet" type="text/css" href="css/html_code.css">
	<link rel="stylesheet" type="text/css" href="css/menu.css">
	<link rel="stylesheet" type="text/css" href="css/message.css">
	<link rel="stylesheet" type="text/css" href="css/module.css">
	<link rel="stylesheet" type="text/css" href="css/page_nav.css">
	<link rel="stylesheet" type="text/css" href="css/print.css">
	<link rel="stylesheet" type="text/css" href="css/template.css">
	
</head>
<body>
	<div class="main">
		<div class="logo">
		  <blockquote>
		    <blockquote>
		      <p>						 		<img src="images/banniere.jpg" width="1133" height="138" alt="banniere" />
	          </p>
	        </blockquote>
	      </blockquote>
	  </div>
		<br/><br/>
	
			<div class="leftmod">
				<div class="leftmod2">		
					<div class="module_menu">
						<div>
							<div>
								<div>
																<h3>Menu Principal</h3>
														<ul class="menu">
														  <li id="current" class="active item1"><a href="index.php"><span>Accueil</span></a></li>
														  <li class="parent item27"><a href="formAssiduite.php"><span> Gestion d'assiduité</span></a></li>
														  <li class="item2"><a href="consultation_d_assiduite.php"><span>Consultation d'assiduite</span></a></li>
														  <li class="item37"><a href="gestion_eleves.php"><span>Gestion des élèves</span></a></li>
														  <li class="item48"><a href=""><span></span></a></li>
														  <li class="item49"><a href=""><span></span></a></li>
														</ul>					
								</div>

							</div>
						</div>
					</div>
					<div class="module_menu">
						<div>
							<div>
								<div>
																<h3>Ressources</h3>

														<ul class="menu">
														  <li class="item11"><a href="modeles.php"><span>Modèles</span></a></li>
														  <li class="item12"><a href=""><span></span></a></li>
														  <li class="item13"><a href=""><span></span></a></li>
														  <li class="item17"><a href=""><span></span></a></li>
														</ul>					
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
			<br/><br/>
		<div class="main2">
		<h1>Ajout d'élève dans la base</h1><br/><br/>

			<form name="form2" action="" method="get">
				Nom : <input type="text" id="nom" name="nom" value=""/><FONT color="red">&nbsp;*</FONT><br/><br/>
				Prenom : <input type="text" id="prenom" name="prenom" value=""/><FONT color="red">&nbsp;*</FONT><br/><br/>
				Classe : <input type="text" id="idClasse" name="idClasse" value=""/><FONT color="red">&nbsp;*</FONT><br/><br/>
				Adresse : <input type="text" id="adresse" name="adresse" value=""/><br/><br/>
				Code postal : <input type="text" id="code_postal" name="code_postal" value=""/><br/><br/>
				Ville : <input type="text" id="ville" name="ville" value=""/><br/><br/>
				Portable : <input type="text" id="portable" name="portable" value=""/><br/><br/>
				Mail : <input type="text" id="mail" name="mail" value=""/><br/><br/>
				Date de naissance : <input type="text" id="date_de_naissance" name="date_de_naissance" value=""/><br/><br/>
				<br/><FONT color="red">&nbsp;*</FONT>=champ obligatoire.
				<input type="submit" name="action" value="Enregistrer" />
			</form>
			
			<br/><br/><div id="message"><?php echo isset($message)?$message:''; ?></div>
			
		</div>
	</div>
</body>

</html>
Tu veux mourir? OK!! Mais pas dans ma voiture, alors attache ta ceinture !! :pouce:
Tony :boire9:

Mammouth du PHP | 568 Messages

05 mai 2011, 16:55

Tu fait appel deux fois à mysql_query donc c'est normal que tu ai un doublon.
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
//echo $sql;
                                               
if (!@mysql_query($sql)) //ici tu réexécute la requête
Il vaut mieux stocker le résultat de mysql_query et faire la vérification ensuite, du style
$result = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
//echo $sql;
if(!$result)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 mai 2011, 16:56

ce n'est pas un problème SQL mais un problèem php tu a deux mysql_query pour la même requete, ce n'est pas un problème d'ailleur c'est ce que tu demande a php tout va bien ;)

la suite de la réponse sur le sujet d'origine=> php-avance/gestion-absences-presences-p ... 26-75.html ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 150 Messages

05 mai 2011, 17:17

Tu fait appel deux fois à mysql_query donc c'est normal que tu ai un doublon.
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
//echo $sql;
                                               
if (!@mysql_query($sql)) //ici tu réexécute la requête
Il vaut mieux stocker le résultat de mysql_query et faire la vérification ensuite, du style
$result = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
//echo $sql;
if(!$result)
Merci pour ta réponse même si j'avais eu la réponse sur mon sujet originale je trouve que tu m'as bien expliqué.
Tu veux mourir? OK!! Mais pas dans ma voiture, alors attache ta ceinture !! :pouce:
Tony :boire9: