je dois faire en php une vérification pour obtenir qu'avant de supprimer un enregistrement celui-ci ne se trouve pas dans une autre table please !!!
 Discussion :
        Discussion :
		 
			
			






 
			
			
			
			 
			
				
 [SQL] Vérifier qu'un enregistrement n'est pas dans une autre table avant suppression
 [SQL] Vérifier qu'un enregistrement n'est pas dans une autre table avant suppression
				
				
						
						
				je dois faire en php une vérification pour obtenir qu'avant de supprimer un enregistrement celui-ci ne se trouve pas dans une autre table please !!!
 
 
				
				
						
						
				Vous ne pouvez pas implémenter ça en comptant sur les clés étrangères (requiert un moteur InnoDB pour MySQL), il doit bien y avoir relation entre les deux, ou par un déclencheur ?
A défaut, il suffit de faire une requête COUNT et de regarder le nombre renvoyé sur cette autre table avant.
 
			
			






 
			
			
			
			 
			
				
 merci
 merci
				
				
						
						
				en faite je dois supprimer un produit que si il n 'appartient pas a une marque
 
 
				
				
						
						
				ça devrait le faire, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql_query('DELETE FROM produit WHERE idproduit = '.$idproduit.' AND idmarque IS NULL');
 
 
				
				
						
						
				Il faut faire la vérification sur toutes les tables
DELETE FROM matable WHERE idproduit=1 AND (SELECT COUNT(*) FROM matable2 WHERE idproduit=1)=0
C'est peut être gérable avec des imbrications de ce style.
En francais :
Je supprime de matable le produit qui a pour idproduit 1 et qui n'est pas dans matable2.
 
 
				
				
						
						
				bah pour faire une réponse valable en SQL, il nous faudrait un extrait de la structure de la bd ...
Sinon, pour répondre à , plutot que :
quitta à faire une requête imbriquée, on peut aussi faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM matable WHERE idproduit=1 AND (SELECT COUNT(*) FROM matable2 WHERE idproduit=1)=0
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM matable WHERE idproduit=1 AND idproduit NOT IN (SELECT idproduit FROM matable2)
Partager