Contrôle sur deux champs
			
		
	 
	
		le 12/12/2007 à 11:35
		jeff
	 
	
		Bonjour,
Comment écrire la syntaxe ou le code pour contrôler si un NOM et le N° de département est déjà dans la table Exemple : Paris -> 75 ?
Je sais faire pour un contrôle, mais pour deux, je ne vois pas…
Si je fais comme ceci, ça ne fonctionne pas ?
<?php
function db_connect()
{
$result = new mysqli('localhost', 'jackbocar', 'XXXXXXXXXXXXXXXXX', 'ma_Table'); 
if (!$result)
throw new Exception('Connexion impossible au serveur');
else
return $result;
}
function register($nom, $dep)
{
$conn = db_connect();
$result = $conn->query("SELECT * FROM ma_table WHERE nom='$nom' AND dep='$dep' ");
if (!$result)
throw new Exception('Impossible executer la requete');
if ($result->num_rows>0) 
throw new Exception('Ce nom et ce departement sont deja dans la table.');
//Si tout est bon, enregistrement dans la base
$conn = db_connect();
$result = $conn->query("insert into ma_table values ('$nom', '$dep')");
if (!$result)
throw new Exception('Il y a un problème, il faut recommencer.');
return true;
}
?>
Merci de votre aide.
Jeff	
Je suis pour le monde du libre
		
			
		
	 
	
	
		Et cela ne fonctionne pas ? Ton test est fait la.
PS : Tu n'appliques nos conseils d'un précédent message avec les mysql_escape_string.	
			
				
		
			
		
	 
	
		le 12/12/2007 à 18:31
		jeff
	 
	
		J'ai refait mon code, je n'arrive pas à gérer les exceptions. Je me suis servi d'un code plus classique. Ca fonctionne très bien, il trouve le couple NOM et DEPARTEMENT, et il arrête le script si un champ est vide.
La seule chose que je n'arrive pas à faire, c'est le retour avec un 
header('location: index.php'); 
voir le Wall : 
http://www.lephpfacile.com/wall/wall-1337.php
Merci de votre aide
Jeff	
Je suis pour le monde du libre
		
			
		
	 
	
		le 17/12/2007 à 15:53
		jeff
	 
	
		Bonjour,
Quelqu'un peut me dire comment je peux placer un header('location: index.php'); sur le code : 
<?php
if (isset($_POST['go']) && $_POST['go']=='add_commanderies') {  
if ((isset($_POST['url']) && !empty($_POST['url'])) && (isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['dep']) && !empty($_POST['dep'])) && (isset($_POST['news']) && !empty($_POST['news']))) {  
 
function db_connect()  
{  
$result = new mysqli('localhost', 'jackbocar', 'XXXXXXXXX', 'ma_base');  
if (!$result)  
throw new Exception('Connexion impossible au serveur');  
else  
return $result;  
}  
 
$conn = db_connect();  
$result = $conn->query('SELECT count(*) FROM commanderies WHERE nom="'.mysql_escape_string($_POST['nom']).'" AND dep="'.mysql_escape_string($_POST['dep']).'"');  
$data = $result->fetch_array(MYSQLI_NUM);  
 
if ($data[0] == 0) {  
$result = $conn->query('INSERT INTO commanderies VALUES("", "'.mysql_escape_string($_POST['url']).'", "'.mysql_escape_string($_POST['nom']).'", "'.mysql_escape_string($_POST['dep']).'", "'.mysql_escape_string($_POST['news']).'")');  
}  
else {  
$erreur = 'Le couple <span class="R">NOM et DEPARTEMENT</span> existe deja dans la table.<br /><br />';  
}  
}  
 
else {  
$erreur = 'Au moins un des champs est vide.<br /><br />';  
}  
}  
 
?>
Meci de votre aide
Jeff	
Je suis pour le monde du libre
		
			
		
	 
	
	
		Ben tu le places la où tu en as besoin.
Tu veux la faire où ta redirection ?	
	
			
		
	 
	
		le 17/12/2007 à 16:51
		jeff
	 
	
		Bonjour,
J'ai essayé de placer ce header, rien a faire, ou il me renvoie directement sur ma page index là où sont visible les nouveaux enregistrement ou, j'ai une erreur et rien ne s'affiche.
Cette page est : ajout.php, et, je veux une fois que le nouvel enregistrement est inscrit dans la table, être dirigé sur la page index.php, et voir la nouvelle entrée affichée.
Jeff	
			Je suis pour le monde du libre
		
			
		
	 
	
	
		Si tu tapes header('location: index.php'); c'est normal que tu dois redirigé sur la home.
Ensuite, il faut que tu mettes le header juste après ton INSERT SQL et pas au tout début du script.
De plus, quelle est l'erreur que tu as quand tu fais le header ?	
	
			
		
	 
	
		le 17/12/2007 à 18:10
		jeff
	 
	
		Bonjour,
Ca fonctionne, je l'ai mis juste après INSERT, et je suis bien redirigé.
Je le plaçais tout en bas, après les message d'erreurs.
Jeff	
			Je suis pour le monde du libre
		
	
	Ecrire un message
	
	Votre message vient d'être créé avec succès.
	
 
	BB-Code
	
		Pour insérer une URL clickable
		
		Pour insérer une adresse E-mail
		
		Pour annoter
		
		Pour écrire du code
		
		Pour faire un lien vers une fonction PHP
		
		Pour écrire du texte préformaté
		
		Pour écrire du texte en gras
		
		Pour écrire du texte en italique
		
		Pour écrire du texte souligné
		
		Pour écrire du texte barré
		
		Pour écrire un titre principal
		
		Pour écrire un titre secondaire
		
		Pour écrire une liste
		
	 
 
	Smiley
	
		
				
							
				:bond:
				 
			 
						
				:boxe:
				 
			 
						
				:bsmile:
				 
			 
						
				:bump:
				 
			 
						
				:clap:
				 
			 
							 
				
							
				:coeur:
				 
			 
						
				:cool:
				 
			 
						
				:cry:
				 
			 
						
				:eek:
				 
			 
						
				:evil:
				 
			 
							 
				
							
				:fleur:
				 
			 
						
				:fou2:
				 
			 
						
				:fou:
				 
			 
						
				:grin:
				 
			 
						
				:grrr:
				 
			 
							 
				
							
				:hammer:
				 
			 
						
				:hippy:
				 
			 
						
				:hum:
				 
			 
						
				:idee2:
				 
			 
						
				:idee:
				 
			 
							 
				
							
				:kdo:
				 
			 
						
				:king:
				 
			 
						
				:ko:
				 
			 
						
				:lol:
				 
			 
						
				:love2:
				 
			 
							 
				
							
				:love:
				 
			 
						
				:mad:
				 
			 
						
				:maitre:
				 
			 
						
				:noel:
				 
			 
						
				:oops:
				 
			 
							 
				
							
				:raa:
				 
			 
						
				:razz:
				 
			 
						
				:roll:
				 
			 
						
				:sad:
				 
			 
						
				:skull:
				 
			 
							 
				
							
				:smile:
				 
			 
						
				:timide:
				 
			 
						
				:trink:
				 
			 
						
				:vice:
				 
			 
						
				:vomi:
				 
			 
							 
				
							
				:wink:
				 
			 
						
				:zzz:
				