gouverneur5
Messages postés1Date d'inscriptionmardi 20 janvier 2004StatutMembreDernière intervention21 juillet 2004
-
21 juil. 2004 à 20:05
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 2006
-
22 juil. 2004 à 23:45
Bonjour à tous, voici mon problème:
je récupère une variable issue d'un formulaire au format string et je l'utilise dans la condition d'une requête SQL. La requête SQL renvoie 1 enregistrements dc la valeur du formulaire est égale à la valeur du champ mis en condition dans la requête.
Mais quand je récupère la valeur de ce champ avec la méthode "getString" et que je la compare avec la valeur du formulaire initial, le test d'égalité est faux. Pourtant la requête SQL a fonctionnée.
Je ne vois pas ce qui ne va pas. Merci d'avance à ceux qui m'aideront.
Voici mon code:
// Déclarations
String code_form=request.getParameter("code_ini"); //issues d'un formulaire
String code_query="";
//...
String requete_sql="SELECT * from users where code='" + code_form + "';";
//...
// Affichage pour vérifier que les deux valeurs sont identiques
out.print ("form: " + code_form + "
"); // Affiche-->form: 0
out.print ("query: " + code_query + "
"); //Affiche-->query: 0
//Le test d'égalité est toujours faux même si la requête SQL renvoie 1 enreg
if(code_form==code_query)
{
out.print("ok"); //PB: ne s'affiche jamais
}
else
{
out.print("pb");
}
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 21 juil. 2004 à 22:31
:big) Neodante :big)
Problème de débutant !!!!
Effectivement on ne compare jamais 2 chaines de caractère avec l'opérateur == mais avec la méthode .equals() ...
L'opérateur == n'est utilisé que pour comparer les types primitifs (int, float, ...) ...
@+
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 22 juil. 2004 à 08:54
Je rajouterai que == pour un objet compare les références.
De même que la méthode equals() si elle n'est pas redéfinie.
Ce qui est le cas de la classe String
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 22 juil. 2004 à 23:45
:big) Neodante :big)
Effectivement l'opérateur == compare les références (adresse des pointeurs en réalité !) mais quelqu'un attendait derrière moi pour prendre l'ordinateur ... j'ai donc abrégé !!! lololol
Merci à gmi19... (trop compliqué ton nom donc je vais t'appeller fan_de_zelda ! lolol) pour la précision ... comme quoi on est jamais trop de 2 !!!! lol
@+ everybody
PS : vivement que je rentre de vacances histoire d'avoir mon PC à moi rien qu'à moi !!! lol