Message d'erreur - MySQL / PHP

Fermé
eleve14 Messages postés 15 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 10 mai 2016 - 15 mars 2016 à 09:51
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 15 mars 2016 à 10:50
Bonjour à tous,

Je suis actuellement en train de réaliser un projet dans le cadre de mes études (précisément, c'est un tirage au sort) et l'utilisateur a besoin d'insérer différentes données. Par conséquent, j'aimerais gérer les doublons. En soit, ce n'est pas ça le problème car j'ai réussi à faire en sorte qu'il n'y ait pas de doublons en revanche, ça paraît bête mais je ne parviens pas à afficher un message d'erreur indiquant "Cette classe existe déjà !", par exemple. J'ai pourtant fait un try{}catch{}, mais j'ai l'impression qu'il n'est pas pris en compte...¨

Voici le code :

// Bouton permettant d'ajouter une nouvelle classe	
		if(isset($_POST['btnNewClasse']))
		{
			try
			{
				$requete = $connexion->prepare("INSERT IGNORE INTO                   tbl_Classe (NomClasse) VALUES(:NomClasse)");
				$requete->execute(array(
				':NomClasse'=> $NomClasse
				));
				header('Location: AjoutDonnees.php');
				exit();	
			}
			catch(Exception $e)
			{
				echo '<script>classeExistante();</script>';
			}			
		}


Si vous avez besoin de plus d'infos, n'hésitez pas. En vous remerciant d'avance pour votre aide, je vous souhaite une bonne journée !

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
15 mars 2016 à 09:55
Bonjour,

Le try/catch intercepte les ERREURS .... (si tu as une erreur dans ta requête par exemple).

Pour faire ce que tu souhaites, le mieux est encore de faire une requête SELECT avant pour vérifier si la classe existé ou non... et SI elle n'existe pas.. en faire un INSERT.

Penses aussi à ajouter, dans ta table, une clé UNIQUE. (sur le nom de la classe par exemple). Ainsi, tu ne pourras pas réinsérer dans ta bdd une classe déjà présente.

0
eleve14 Messages postés 15 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 10 mai 2016 1
15 mars 2016 à 10:42
Concernant la clé UNIQUE, je l'ai déjà effectué. Et mon problème est en fait que je ne sais pas comment tester si la classe existe, malgré le SELECT fait avant l'INSERT...
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
15 mars 2016 à 10:50
Ben... si le SELECT retourne un résultat .... c'est donc qu'il existe déjà !
Montre donc le code essayé avec le SELECT pour voir ce que tu as mal fais...
0