IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de comparaison de chaîne de caractères [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut Problème de comparaison de chaîne de caractères
    Voici mon code j ai un problème dans me conditions de if, j'essaie de comparer une chaine de caractère d'un formulaire avec une d'une base de donnée et cela me met la condition toujours fausse.
    Et je ne sais pas du tout pourquoi.
    Merci de votre aide



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    $a = mysql_query("SELECT `Contrasena` FROM `identification` WHERE `Contrasena` LIKE ('%$contra%')"); 
    while ($b = mysql_fetch_array($a)) //Au cas où il y a plusieurs résultats
    {
         $c = $b['Contrasena'];
    }
    echo $b['Contrasena'];
    $d = mysql_query("SELECT `Contra` FROM `formulaire` WHERE `Contra` LIKE ('%$contra%')"); 
    while ($e = mysql_fetch_array($d)) //Au cas où il y a plusieurs résultats
    {
         $f = $e['Contra'];
    }
     
    $g = mysql_query("SELECT `Contra` FROM `formulaire1` WHERE `Contra` LIKE ('%$contra%')"); 
    while ($h = mysql_fetch_array($d)) //Au cas où il y a plusieurs résultats
    {
         $i = $h['Contra'];
    }
     
    if (strcmp($contra, $c) == 0) 
    {
     
    	if (strcmp($contra, $f) == 0) 
    			{
    			//Insertion des données
    			$sql = "INSERT INTO formulaire1 VALUES ( '' , '$contra' , '$carr' , '$com1' , '$com2' , '$com3' , '$comen1' , '$ido' , '$util' , '$ayud1' , '$ayud2' , '$ayud3' , '$ayud4' , '$comen2' , '$moti1' , '$moti2' , '$moti3' , '$moti4' , '$moti5' , '$comen3' , '$mejo1' , '$mejo2' , '$mejo3' , '$mejo4' , '$mejo5' , '$mejo6' , '$comen4' , '$sept' , '$comen5' )";
    			$res = mysql_query($sql);
     
    			$msg_ok = "Muchas gracias para tu participacion pero no es la primera vez que tu respondes a nuestra encuesta";
    			if ($res)
    				{
    			    	echo $msg_ok;
    				}
    				else
    				{
    			    	echo mysql_error();
    		 		}
    		 	}
    	else
    			{
    			//Insertion des données
    			$sql = "INSERT INTO formulaire VALUES ( '' , '$contra' , '$carr' , '$com1' , '$com2' , '$com3' , '$comen1' , '$ido' , '$util' , '$ayud1' , '$ayud2' , '$ayud3' , '$ayud4' , '$comen2' , '$moti1' , '$moti2' , '$moti3' , '$moti4' , '$moti5' , '$comen3' , '$mejo1' , '$mejo2' , '$mejo3' , '$mejo4' , '$mejo5' , '$mejo6' , '$comen4' , '$sept' , '$comen5' )";
    			$res = mysql_query($sql);
     
    			$msg_ok = "Muchas gracias para tu participacion";
    			if ($res)
    				{
    			    	echo $msg_ok;
    				}
    			else
    				{
    			    	echo mysql_error();
    		 		}
     
    			}
    }
    else
    {
    	//Insertion des données
    	$sql = "INSERT INTO formulaire2 VALUES ( '' , '$contra' , '$carr' , '$com1' , '$com2' , '$com3' , '$comen1' , '$ido' , '$util' , '$ayud1' , '$ayud2' , '$ayud3' , '$ayud4' , '$comen2' , '$moti1' , '$moti2' , '$moti3' , '$moti4' , '$moti5' , '$comen3' , '$mejo1' , '$mejo2' , '$mejo3' , '$mejo4' , '$mejo5' , '$mejo6' , '$comen4' , '$sept' , '$comen5' )";
    	$res = mysql_query($sql);
     
    	$msg_ok = "Muchas gracias para tu participacion pero tu contraseña es mala";
    	if ($res)
    		{
    	    	echo $msg_ok;
    		}
    	else
    		{
    	    	echo mysql_error();
    	 	}
    }

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je ne comprends pas forcément le problème. Tu compares deux chaines et ca te dit toujours qu'elles sont différentes. Es-tu sur qu'elles sont bien identiques? (vérifies avec des echo avant)

    ensuite tu boucles plusieurs fois pour récupérer tous les résultats mais tu les mets dans la meme variable est-ce normal??

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Oui elles sont identiques j ai essayé avec echo.

    Et je comprends pas ce que tu dis sur les résultats, je les recoie dans des variables differentes:
    $c
    $f
    $i
    Voilà
    Merci

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    En fait mes comparations sont bonnes cela marche en essayant de mettre les valeurs cela marche.

    Le problème est autre, c'est que les valeurs que j obtiens de la base de donnée est autre chose que ce que je pense. Il doit modifier la donnée. Mais comment???? je ne sais pas.

    Comment faire sachant que la variable $contra est par exemple "61ps21" et que dans la base de donnée c'est un type VARCHAR de 6 caractères.

    Merci de votre aide, je bloque severe.

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Une solution serait de contourner le probleme, serait il possible de verifier s'il existe un mot dans une champs 'une certaine table et renvoyer 1 ou 0????

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de comparaison de chaînes de caractères
    Par Ayelve dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 15/09/2008, 21h58
  2. Réponses: 2
    Dernier message: 23/03/2006, 12h39
  3. Réponses: 11
    Dernier message: 22/03/2006, 21h57
  4. [Configuration] problème de taille de chaînes de caractères
    Par Wormus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 21/10/2005, 14h55
  5. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo