select et controle

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 : select et controle

par gesualda » 07 janv. 2006, 16:16

Yep, je pense que la c'est bon, je vais prendre des notes.
Merci pour ton explication, qui m'a bien aidé.

bonne après midi

gesualda :D

par ouckileou » 07 janv. 2006, 15:57

Oui, car cette fois ci tu contrôles bien la valeur de "titre" (vide ou non), alors que dans ton message tu controlais encore le nombre de ligne (avec mysql_num_rows, qui ne sert à rien maintenant)

Tu peux très bien avoir une ligne correspondant à l'utilisateur, dans laquelle la colonne "titre" est vide, donc une requête dessus va te renvoyer une valeur vide, mais mysql_num_rows renverra quand même 1, puisque tu auras trouvée une ligne.

Est-ce que tu comprends la différence ?

par gesualda » 07 janv. 2006, 15:47

A force de passer des heures à chercher on arrive à trouver certainement formule qui fonctionnent:
J'ai donc fais cela:
$sql_coord = "SELECT titre FROM rech_coord_tbl WHERE nom='".$_SESSION['nom']."'";
		$req = mysql_query($sql_coord) or die('Erreur SQL !'.$sql_coord.'<br>'.mysql_error());  
		$res_coord = mysql_num_rows($req);
		$res_row = mysql_fetch_assoc($req);
		$civil  = $res_row['titre']; 
		 
		if($civil == '' ) { 		
		echo 'inexistant dans la base <br>';	
		print_r($civil);			
		}
		else{	
		echo 'existe deja dans la base  <br>';	
					
		print_r($civil);	
		}
Pas de problème, ca fonctionne, mais est ce une bonne syntaxe ?

par gesualda » 07 janv. 2006, 15:27

Merci ouckileou d'avoir répondu,

j'ai testé la valeur récupéré de plusieurs facon, toujours le meme problème. Que je fasse:
if(empty($res_coord)) { 
ou
if($res_coord == '') { 
ca ne marche pas ca me donne toujours le meme résultat

Comment procéder pour tester dans la requete ?

Merci :oops:

par ouckileou » 07 janv. 2006, 14:13

Salut,

si une personne est déjà enregistrée, un select sur la colonne titre de la ligne correspondante te renverra toujours 1 ligne, que la colonne titre soit renseignée ou non.

Donc plutôt que de tester le nombre de ligne retournée, teste plutôt la valeur de la colonne titre récupérée.

Ou alors teste dans ta requête si ta colonne titre n'est pas nulle, si elle est initialisée comme ça.

select et controle

par gesualda » 07 janv. 2006, 13:30

Bonjour à tous,

Lorsque j'essaye de controler l'extraction fait dans une base, elle me donne toujours la valeur 1, quelle existe ou pas.
$sql_coord = "SELECT titre FROM rech_coord_tbl WHERE nom='".$_SESSION['nom']."'";
		$req = mysql_query($sql_coord) or die('Erreur SQL !'.$sql_coord.'<br>'.mysql_error());  
		$res_coord = mysql_num_rows($req); 
		 
		if($res_coord != 0) { 		
		echo 'existe deja dans la base  <br>';
		print_r($res_coord);			
		}
		else{		
		echo 'inexistant dans la base <br>';	
		print_r($res_coord);	
		}
J'ai mis le bout de code.
Je m'explique:

Ce que je veux faire c'est juste de savoir si le champ titre de la base est renseigner ou non d'après le nom de la personne connectée.

POurriez vous m'expliquer ou est mon erreur et pourquoi ca marche pas ?

Merci :D