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

Langage SQL Discussion :

Problème requête SQL "INTERVAL DAY"


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut Problème requête SQL "INTERVAL DAY"
    Bonjour,

    J'ai posté un message que j'ai mis en résolu mais ce n'est pas le cas.
    Je voudrais afficher le résultat du week-end dernier des matchs de foot, voila la requête qu'on m'a trouvée à mettre sur le site.
    Le problème cela ne m'affiche rien et change l'aspect du site "Le texte devient gras, des décalages sur mes div Prochains matchs, derniers matchs"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cal_stade
    FROM calmatchs
    WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY)
    	AND DAYOFWEEK(cal_date) IN (7, 1)
    Voici une image après insertion du signe "-" devant le 7 quand je l’enlève je n'ai pas de bug.
    http://jelter.fr/bug.jpg

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Le SQL agit sur les sites web, c'est de notoriété publique.

    Votre précédent problème avait une cause PHP, vous devriez commencer dans cette direction.

  3. #3
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    d'ou viendrait mon erreur ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    en php voila ce que j'affiche d'apres ma requete.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      function get_resultats()
        {
     
            ConnectionDb();
     
             $sql = 'SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cal_stade
    FROM calmatchs
    WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY)
    	AND DAYOFWEEK(cal_date) IN (7, 1)';         $query = mysql_query($sql) or die("Erreur : requête sql affichage liste des joueurs");
     
            return $query;
     
        }

    En php
    Code php : 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
      <div id="resultats"><h2>Dernier Matchs ...
      <?php 
     
     
        $result = get_resultats();
        $num_ligne = 1;     // initialisation du numero de chaque champs
        while($match = mysql_fetch_assoc($result) ):
     
    ?></h2>
            <table width="100%" border="0">
            <tr>
                <td>
     
               <?php echo $match['cal_locaux']; ?> - <?php echo $match['cal_visiteurs']; ?>
                <p style="text-align: center;"><span class="score"><?php echo $match['cal_score_locaux']; ?></span> - <?php echo $match['cal_score_visiteurs']; ?><span class="score"></span></p>
     
                </td>
            </tr><?php endwhile; ?>
    </table>
      </div>

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Et comme dit dans l'autre discussion, essaie avec DATE_SUB qui est un peu plus logique que d'ajouter -7 jours !

    EDIT :
    Affiche la requête avant envoi au serveur.
    Je soupçonne que cela pourrait venir de l'absence d'espace entre les lignes SQL.
    Avec une bonne indentation du code, tu ne devrais pas avoir de problème :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function get_resultats()
    {
     
    	ConnectionDb();
     
    	$sql = '
    		SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cal_stade
    		FROM calmatchs
    		WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY)
    			AND DAYOFWEEK(cal_date) IN (7, 1)
    	';         
    	$query = mysql_query($sql) OR die("Erreur : requête sql affichage liste des joueurs");
     
    	return $query;
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE cal_date BETWEEN CURRENT_DATE 
    AND DATE_SUB(CURRENT_DATE, INTERVAL -7 DAY)
    En ajoutan DATE_SUB j'ai plus de bug mais cela m'affiche les matchs du week end a venir. J'ai vu aussi que j'avais deux fois la variables match donc j'ai mis une autre en resultat
    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
      <div id="resultats"><h2>Dernier Matchs ...
      <?php 
     
     
        $result = get_resultats();
        $num_ligne = 1;     // initialisation du numero de chaque champs
        while($resultat = mysql_fetch_assoc($result) ):
     
    ?></h2>
            <table width="100%" border="0">
            <tr>
                <td>
     
               <?php echo $resultat['cal_locaux']; ?> - <?php echo $resultat['cal_visiteurs']; ?>
                <p style="text-align: center;"><span class="score"><?php echo $resultat['cal_score_locaux']; ?></span> - <?php echo $resultat['cal_score_visiteurs']; ?><span class="score"></span></p>
     
                </td>
            </tr><?php endwhile; ?>
    </table>
      </div>
    .

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Évidemment ! Tu soustrais -7 jours donc tu les ajoutes !
    Essaie quand même de comprendre un peu ce que fait le code que tu utilises !

    Pas sûr entre autre qu'il soit très utile de faire appel à ConnexionDb pour chaque requête !

    J'ai édité mon précédent message.

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Si vous utilisez DATE_SUB il faut enlever le moins.

    On ajoute -7 ou on retire + 7 :
    x + ( - y ) = x - ( + y ) = x - y

  9. #9
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    en elevant j'ai plus de bug mais j'arrive pas à avoir le match que du week end je me retrouve avec tous les matchs de la saison toutes catégories.

  10. #10
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Quand vous faites "une_valeur between A and B", on doit avoir A <= B

    Sinon c'est normale qu'il ne trovue rien, donc gardez le between et adaptez

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Bis repetita :
    Essaie quand même de comprendre un peu ce que fait le code que tu utilises !
    Tu veux une traduction en français ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT cal_date, cal_heure, cal_locaux, cal_visiteurs, cal_lieu, cal_stade
    		FROM calmatchs
    		WHERE cal_date BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY)
    			AND DAYOFWEEK(cal_date) IN (7, 1)
    Sélectionner un paquet de colonnes
    de la table calmatchs
    où la cal_date est comprise entre aujourd'hui et aujourd'hui + (-7) jours (donc entre aujourd'hui et il y a 7 jours)
    et où le jour de semaine de cal_date est dans l'ensemble (7, 1) (c'est à dire samedi ou dimanche).

    La requête répond au besoin.
    Si la requête pour le week-end prochain fonctionne, il n'y a pas de raison que celle-ci ne fonctionne pas.

    As-tu exploré la piste que je t'ai donnée dans l'ajout à mon antépénultième message ?

    EDIT :
    Quand vous faites "une_valeur between A and B", on doit avoir A <= B

    Sinon c'est normale qu'il ne trovue rien, donc gardez le between et adaptez
    Oh punaise ! Je ne l'avais pas vue celle-là !

  12. #12
    Membre à l'essai
    Homme Profil pro
    salarié
    Inscrit en
    Mars 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : salarié
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2011
    Messages : 55
    Points : 21
    Points
    21
    Par défaut
    C'est bon j'ai trouvé mon probleme voici le code
    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
    	    function get_resultats()
        {
     
            ConnectionDb();
     
             $sql = 'SELECT *
    FROM calmatchs
    WHERE cal_date 
    BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() 
    ORDER BY cal_date
    ';
     
            $query = mysql_query($sql) or die("Erreur : requête sql affichage liste des joueurs");
     
            return $query;
     
        }
    Mais maintenant je cherche a afficher le resultat du week end mais que de l'equipe 1. Champ : Equ_name : Seniors Equ 1

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Et revoilà la guerre des étoiles !

    Et CURRENT_DATE est plus standard que NOW() !

Discussions similaires

  1. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  2. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 17h50
  3. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  4. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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