Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 17h21   #1
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 1
Points : 1
Par défaut verification d'une entree dans ma base

bonjour a tous

c'est ma premiere visite a ce forum et j'espere trouver l'aide qu'il me faut
voila mon probleme :
je rentre un pseudo par l'intermediare d'un formulaire php et je veux le comparer a ce qui se trouve dans ma base j'ai essaye le code suivant

Code :
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
 
 
try
        {
         $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
         $bdd = new PDO('mysql:host=localhost;dbname=ma base', 'root', '', $pdo_options);
 
         $req = $bdd->query("SELECT pseud from table_pseudo");
 
	    while( $donnees = $req->fetch())
 
{
	  if ($_POST['pseudo']=$donnees['pseud'])
 
	     {?>
		  ..traitement
 
                               echo 'pour voir ce qui se passe';
 
          <?php 
 
		 } 
 
	  else 
	     { ?>
 
	<a href = "http://localhost/...php">retour </a>
<?php	     }
 
	$req->closeCursor();
        }
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());}
}
le probleme est que moi au depart ce que je veux c'est si le pseudo est dans la base il fait le traitement mais lui par exemple dans le cas d'echo il affiche le traitement un nombre de fois egal au contenu de la base et meme quant je rentre un pseudo qui n'yest pas il fait le traitement quant meme et ne va jamais au else

rq:la boucle est necessaire a mon avis afin qu'il lise tout le contenu mais elle repete le if et else un nb de fois egal au contenu de la base que faire??

ce que j'aimerai c'est que quelqun me mette sur la bonne piste comment verifier les donnes et passer au if sinon au else et cela une seule et une seule fois meme en lisant toutes les donnes de la base
gholaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 17h42   #2
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 76
Points : 161
Points : 161
Bonjour,

en PHP, comme dans beaucoup d'autres langages, l'opérateur conditionnel d'égalité est == et non pas = qui est l'opérateur d'affectation.

une condition basée sur une affectation est toujours vraie pour peu que la valeur affectée soit différente de 0, false ou null.

Maintenant, voulez vous vraiment boucler sur tous les enregistrements ? Ne serait-il pas plus efficace, si il s'agit là d'une simple vérification d'existence d'un enregistrement en base de passer par une requete SQL avec une clause where qui va bien (comparaison du champ qui vous interresse avec la valeur passée dans votre post) ?

Cdt.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 17h45   #3
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
pour commencer c'est == dans le if
Code :
1
2
3
4
5
6
7
8
9
10
	  if ($_POST['pseudo']==$donnees['pseud'])
	         
	     {?>
		  ..traitement
 
                               echo 'pour voir ce qui se passe';//la c'est du HTML pas du PHP donc ta ligne ne sera pas exécutée...
           
          <?php 
		 
		 }
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 18h28   #4
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 1
Points : 1
deja premierement merci de votre aide et oui effectivement il fallait un == car ce n'est pas une affectation mais ca ne resoud pas pour autant le probleme car la il saute careement le bloc if et va directement au else
gholaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 18h36   #5
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
vérifies ta requête, le nom du champs est bien pseud dans ta table ou pseudo ?
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 19h49   #6
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 1
Points : 1
c'est bon je pense avoir trouve ou est le probleme dans la condition if 'il y'avait une erreur dans le code html mais n'empeche le lien qui est present dans le else se repete a chaque fois que la boucle ne trouve pas le pseudo recherche donc je doit sortir le else de la boucle pour qu'il ne s'affiche qu'une seule fois dans le cas ou il ne trouve pas et mais je ne sait pas comment
gholaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 21h09   #7
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
normalement c'est ta requete que tu dois modifier, du genre :
Code :
SELECT COUNT(*) AS total FROM table_pseudo WHERE pseud = $_POST['pseudo']
et ta condition porte sur total si total > 0 else ...
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 21h29   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Dans ce genre de problème il suffit d'enregistrer une variable témoin ;
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$test = false;
while ()
{
if (condition_ok) 
{
 $test = true;
 traitement PHP
}
}
 
if ($test === false)
{
traitement PHP si on est jamais rentré dans la première boucle qui inverse la valeur de $test
}
Cela dit la solution de vorace est plus appropriée pour la comparaison simple que tu veux faire.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 22h09   #9
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 1
Points : 1
vraiment merci de votre aide vous m'avez appris plusieurs trucs merci
gholaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h40.


 
 
 
 
Partenaires

Hébergement Web