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 :

résultat d'un count [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut résultat d'un count
    Bonjour,

    je suis sur un petit script très simple (je pensais) de login.
    J'ai une première page de saisie, formulaire POST avec affichage de message d'erreur si retour, et ma page de verification.

    Dans celle-ci je recherche dans ma base une occurence du couple login/password avec un count, j'ai trouvé plusieurs fois le même script dans des faq et forum, je l'ai copié mais ça ne marche pas. Il me dit que l' argument de mysql_num_rows n'est pas bon.

    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
     
    <?php
    session_start();
     
    $login = $_POST['login'];
    $_SESSION['login']=$login;
    $pwd = $_POST['pwd'];
    $num=0;
     
    // connexion à la BD
    $connexion = mysql_connect("localhost","root","") or die(mysql_error());
     
    // selection de la base
    $db = mysql_select_db("guanxi");
     
    // on cherche l'enregistrement
    $requete="SELECT COUNT(*) FROM members WHERE login='$login' AND pwd='$pwd'";
    $result=mysql_query($requete, $connexion);
    $num = mysql_num_rows($result);
     
    // on ferme la connexion à la BD
    mysql_close($connexion);
     
    if ($num==0) {
    	$_SESSION['error']=1;
    	header("location: login.php");
    	exit();
    }
     
    $_SESSION['user']=$login;
    echo 'Vous vous êtes logué avec succès.';
     
    ?>
    merci

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    essaie de remplacer cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($requete, $connexion);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($requete) or die(mysql_error());

    Si tu fais un echo de $requete, te parait-elle correcte ? si tu la passes directement à MySQL (via phpMyAdmin ou en ligne de commande) est ce que tu obtiends le résultat escompté ?

  3. #3
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    je crois que tu te mélanges les pinceaux : ta requête renvoit un nombre et non un tableau d'enregistrement donc soit tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $requete="SELECT COUNT(*) FROM members WHERE login='$login' AND pwd='$pwd'";
    $result=mysql_query($requete, $connexion);
    ... 
    if ($result==0) ...
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $requete="SELECT * FROM members WHERE login='$login' AND pwd='$pwd'";
    $result=mysql_query($requete, $connexion);
    $num = mysql_num_rows($result);
     
    // on ferme la connexion à la BD
    mysql_close($connexion);
     
    if ($num==0) {
    mais pas les 2 sinon $num contiendra toujours 1 quoi qu'il se passe
    PS : je ne pense pas que ton problème vient de là mais bon...

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    désolé...

    je me suis juste trompé de tables, ce n'était pas members mais log.

    Merci en tout cas.

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

Discussions similaires

  1. Extraite le résultat d'un COUNT > 1
    Par lodan dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/03/2008, 18h16
  2. afficher le résultat d'un count
    Par jan0 dans le forum SQL
    Réponses: 3
    Dernier message: 20/10/2006, 10h01
  3. fonction: renvoyer résultat d'un count .. group by ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/09/2006, 14h21
  4. Afficher le résultat d'un COUNT même null
    Par Invité dans le forum Langage SQL
    Réponses: 10
    Dernier message: 18/11/2005, 18h07
  5. résultat de " select count "
    Par marie253 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2004, 12h07

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