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] Soucis avec une requête


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Points : 34
    Points
    34
    Par défaut [SQL] Soucis avec une requête
    Bonjour,

    Je me tourne vers vous car je suis confronté à un problème de débutant.

    J'ai une base (boutique) composée de deux colonnes :
    Une colonne nommée "crit1" qui contient une note sur 10 et une autre nommée "date" qui contient la date de l'enregistrement.

    Je souhaite calculer et afficher le nombre d'enregistrements datant de moins de 6 mois.


    Je suppose que ça ne doit pas être bien compliqué mas si quelqu'un a un piste je suis preneur !

    Merci

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Après quelques tests je dirai que ca ca peut marcher :
    SELECT * from matable where date > (NOW()-INTERVAL 6 MONTH)

    Et tu récupères le nombre de résultats avec un mysql_num_rows()

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    Essaye ça:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) FROM boutique WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)

    Cordialement.
    Dernière modification par julp ; 30/05/2007 à 18h09.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci pour votre aide, mais je ne dois pas être doué

    j'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nb = mysql_query("SSELECT * from boutiqueanimalissaintpriest where date > (NOW()-INTERVAL 6 MONTH)");
    $preado = mysql_fetch_row($nb);
    echo $preado;
    Erreur :
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home.10.8
    J'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nombre = mysql_query("SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH")
    echo $nombre;
    Erreur
    Parse error: syntax error, unexpected T_ECHO in /home.10.8...
    Je suppose que j'ai du faire une erreur de syntaxe.. mais où ? Désolé de vous embeter avec ça mais il ya trois jours je ne savais même pas ce qu'était une table...


    Merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Fabouney
    Salut,

    Essaye ça:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) FROM boutique WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)

    Cordialement.
    Merci
    En passant par phpmyadmin cette requête fonctionne...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // on crée la requête SQL
    $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)';
    $res = mysql_num_rows($sql); 
    echo .$res. ;
    Mais là ça coince :-(

  6. #6
    Membre du Club Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Où est-ce que tu effectue ta requete (mysql_query) ?

    Essaye ca :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "SELECT count(*) FROM boutique WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)";
    $query = mysql_query($sql) or die($sql . ' : '  . mysql_error());
    $data = mysql_num_rows($query);
    echo $data;
    Sinon je vois pas trop

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Voici le code complet qui est placé dans un tableau

    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
     
    <?php 
    // connexion à la base
    $db = mysql_connect('mysql5-3', 'aaaaaa', 'bbbbbbb')  or die('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db('aaaaaa')  or die('Erreur de selection '.mysql_error());
     
    // Creation et envoi de la requete
    $sql = "SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)";
    $query = mysql_query($sql) or die($sql . ' : '  . mysql_error());
    $data = mysql_num_rows($query);
     
     
    echo "($data avis)" ;
     
    mysql_close();  // on ferme la connexion
     
    ?>
    Le probléme c'est que la valeur affichée dans le tableau est toujours 1.
    Pourtant dans phpmyadmin la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)';
    me donne le bon nombre....

    Quelqu'un voit d'où vient le problème ??

    3 heures que je sèche dessus :-(

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Parce que mysql_num_rows() retourne le nombre de lignes dans le résultat. toi tu as une seule ligne dans le résultat vu que tu fais un Select count(*)

    Il me semble que tu voulais avoir les résultats ET leur nombre dans ce cas faut faire un SELECT * FROM, utiliser mysql_num_rows() pour avoir le nombre de résultats et utiliser mysql_fetch_*() pour récupérer chaque résultat.

    Si tu veux juste leur nombre dans ce cas il faut faire comme ca :
    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
    <?php 
    // connexion à la base
    $db = mysql_connect('mysql5-3', 'aaaaaa', 'bbbbbbb')  or die('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db('aaaaaa')  or die('Erreur de selection '.mysql_error());
     
    // Creation et envoi de la requete
    // on donne un nom au résultat du count pour l'avoir facilement
    $sql = "SELECT count(*) AS NbEnreg FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)";
    $query = mysql_query($sql) or die($sql . ' : '  . mysql_error());
     
    //$data = mysql_num_rows($query);
    // récupéres dans un tableau la premiere (et seule) ligne du résultat
    $result = mysql_fetch_assoc($query);
    // récupère la valeur du count :
    $nbEnreg = $result['NbEnreg'];
     
    echo "($nbEnreg avis)" ;
     
    mysql_close();  // on ferme la connexion
     
    ?>

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci ! Cela fonctionne au moment où je commençais à perdre tout espoir !!

    Un grand merci !!!

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    De rien !
    Penses a mettre Résolu a ton post maintenant puisque le problème est réglé

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

Discussions similaires

  1. Souci avec une requête SQL
    Par req_sql dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/12/2014, 11h39
  2. [SQL] problème avec une requête
    Par ANISSS dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 23/05/2007, 17h56
  3. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  4. [SQL] Problème avec une requête
    Par jcmskip dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/04/2007, 11h41
  5. Petit soucis avec une requête
    Par Jeetiz dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/02/2007, 14h53

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