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 :

[SQL] Comptage d'enregistrements


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut [SQL] Comptage d'enregistrements
    Bonjour à tous.

    Je voudrais compter le nombre de résultats obtenus suite à une requête.
    Le problème, c'est que le résultat est toujours le même, même si je change la requête.

    Concrètement :

    J'ai essayé ce code :


    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    //$mot est une variable obtenue par POST
     
    $query = mysql_query("SELECT * FROM bdd_clips WHERE artiste LIKE ('%$mot%') OR titre LIKE ('%$mot%') ORDER BY id DESC");
    $total_clips = mysql_num_rows($query);
    echo 'Résultat : ' . $total_clips . 'trouvés.';
    ?>


    Le problème, c'est que le résultat obtenu est toujours 3, c'est à dire le nombre total d'enregistrements dans ma table. Peu importe la valeur de $mot, même si cette variable contient une valeur commune à seulement 1 ou 2 enregistrements.

    J'ai aussi essayé avec ce code :


    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $query1 = mysql_query("SELECT COUNT(*) AS nb_clips FROM bdd_clips WHERE artiste LIKE ('%$mot%') OR titre LIKE ('%$mot%')");
    $query2 = mysql_fetch_array($query1);
    $total_clips = $query2['nb_clips'];
    echo 'Résultat : ' . $total_clips . 'trouvés.';
    ?>


    Ca fait le même effet qu'avec ma première solution, ça affiche le nombre total d'enregistrements de la table, et non pas seulement le nombre d'enregistrements sélectionnés.
    Donc je ne suis pas plus avancé

    C'est surement tout bête, mais je ne trouve pas la solution :s

    Merci de l'aide que vous pourrez m'apporter

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Tu n'es pas sur le bon forum, mais bienvenue quand même.

    Assure toi que $mot n'est pas vide.
    Malgrès ma faible expérience de PHP je crois qu'il faut utiliser le tableau $_POST[] ou $_REQUEST[] pour récupérer un paramètre d'un formulaire HTML.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $Nom = $_POST['nom'];
    A+

    PS: ton post va surement être déplacé dans le forum PHP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut
    (Merci d'avoir déplacé mon post, je n'étais vraiment pas sûr de l'endroit le mieux aproprié, désolé).


    J'utilise bien cette méthode plus haut dans mon code

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_POST['mot']))
    {
       $mot = $_POST['mot'];
       ...blablabla...
    }

    Par ailleurs, j'ai essayé en donnant une valeur unique à $mot, c'est à dire en lui donnant une autre valeur que celle prend par le POST, et le résultat reste le même.

    On dirait que c'est le WHERE de ma requête qui est ignoré. Le problème, c'est de savoir pourquoi.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    //$mot est une variable obtenue par POST
    
    $query = mysql_query("SELECT * FROM bdd_clips WHERE artiste LIKE '%$mot%' OR titre LIKE '%$mot%' ORDER BY id DESC")
     or die(mysql_error());;
    $total_clips = mysql_num_rows($query);
    echo 'Résultat : ' . $total_clips . 'trouvés.';
    ?>
    essaye comme cela j'ai rajouté le or die pour voir les erreurs de la bdd

  5. #5
    Membre chevronné Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Par défaut
    Bonjour,

    Pourrais tu envoyer la structure de ta base de données.

    J'ai fais un test qui fonctionne sur une bdd montée en vitesse, mais il faudrait que je puisse tester avec ta structure.

    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut
    Tout d'abord, désolé du temps que j'ai mis à répondre, je rentre seulement des cours. En tout cas, merci de l'attention que vous apportez à mon problème

    Alors, pour le or die, j'ai essayé, ça ne ressort rien, et c'était prévisible, car le script ne plante pas, il affiche juste un mauvais résultat.

    Pour la structure de ma base, cliquez ici.
    Pour la structure de ma table, cliquez ici.

    J'espère que ça aidera

  7. #7
    Membre chevronné Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Par défaut
    Merci, je suis deçu, je teste cela de suite.

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

Discussions similaires

  1. [PL/SQL] Parcours des enregistrements contenus dans 1 curso
    Par lapartdombre dans le forum Oracle
    Réponses: 6
    Dernier message: 01/12/2005, 13h50
  2. [SQL] nombre d enregistrement d une table
    Par sharpeye dans le forum Access
    Réponses: 1
    Dernier message: 03/11/2005, 18h46
  3. Réponses: 4
    Dernier message: 20/06/2005, 14h57
  4. SQL - Regrouper des enregistrements...
    Par Régent dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/02/2005, 23h42
  5. Réponses: 12
    Dernier message: 27/08/2004, 15h42

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