Tester l'existence d'une valeur au sein d'une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tester l'existence d'une valeur au sein d'une table

par Ryle » 31 mars 2008, 12:16

Un simple SELECT ou un SELECT COUNT(...) te permet facilement de savoir si un enregistrement existe ou pas. Si l'élément n'existe pas, le SELECT ne te retournera rien, quant au count, il t'indiquera directement 0.

Tu peux également compter le nombre d'enregistrements retournés avec mysql_num_rows(), ou plus simplement encore - puisque d'après ton code, ta requête ne devrait jamais retourner plus d'un seul enregistrement - remplacer la boucle while par un simple if. Pas besoin de boucler sur un seul élément, et le if() te permet comme le while de n'exécuter le code que s'il y a un enregistrement trouvé.
Il te permet également d'ajouter un else pour gérer le cas ou aucun enregistrement n'a été trouvé :)

Tester l'existence d'une valeur au sein d'une table

par Philou » 29 mars 2008, 15:45

Bonjour à tous,
Comme l'indique le sujet ,je voulais savoir s'ile xiste un moyen sql de vérifier qu'une valeur existe bien au sein d'une colonne d'une table.

En effet,il se peut que celle -ci n'existe pas et alors implique une gestion differente.

Code : Tout sélectionner

CREATE TABLE dossierDPE ;
//Attention IdCommande nous sera renvoyé par Ajax en methode post
	$oPDOStatement=$oConnectionDpe->query('SELECT typeTransaction FROM dossierDPE WHERE idCommande='.$_POST['IdCommande']);
				while($aRow=$oPDOStatement->fetch()){
					switch($aRow['typeTransaction']){
						case '1':$sTypeErnt='Location';break;
						case '2':$sTypeErnt='Location saisonniere';break;
						default:$sTypeErnt='Vente';break;
					}
				}
				
				echo 'Le serveur Dpe a indiqué qaue nous étions en présence d\'une '.$sTypeErnt;	
	}else{
		throw new Exception('Connection au serveur Dpe impossible');
	}
en effet,le code precedent n'est vraui que si $_POST['IdCommande'] existe et ce n'est pas forcement le cas.

Commen,t procédeirez vous pour tester la possiblité qu'elle n'existe pas et declencher une action en fonction du resultat.
merci a tous