PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Problème de différence entre résultats de requêtes » 22-06-2009 16:10:13

aliberlis
Réponses : 1

Bonsoir, je rencontre un problème que vous avez peut-être déjà vu et éventuellement traité.

Sur mon site, j’ai une table Foot_Presse sous MySql telle que décrite ci-dessous.

ID_PRESSE          int(11)                           Non           auto_increment       Affiche les valeurs distinctes

SAISON             varchar(10)        latin1_general_ci         Non                     Affiche les valeurs distinctes

DATE_ARTICLE         date                             Non 0000-00-00         Affiche les valeurs distinctes

ORIGINE             varchar(50)         latin1_general_ci         Non                     Affiche les valeurs distinctes

NOM_DU_FICHIER     varchar(255)     latin1_general_ci         Non                     Affiche les valeurs distinctes

COMMENTAIRE         text             latin1_general_ci         Oui     NULL         Affiche les valeurs distinctes

Il y a plusieurs ORIGINE (noms de journaux: « Midi Libre », « Indépendant » et « ActuFoot34 ».

Il y a plusieurs dates d’articles de journaux.

Il y a des cas où il y a un article à la même date pour 2 journaux différents.

Mon objectif : afficher les articles d’abord par ordre de dates de parution DECROISSANT, et, si une même date pour plusieurs articles, par ordre CROISSANT sur le nom du journal.

Exemple :
Midi Libre – 2009/05/23
Indépendant – 2009/05/17
Midi Libre – 2009/05/17
ActuFoot34 – 2009/05/10
Midi Libre – 2009/05/03


Requête sous PhpMyAdmin

SELECT ID_PRESSE,ORIGINE,DATE_ARTICLE FROM FOOT_PRESSE WHERE SAISON="2008-2009" ORDER BY DATE_ARTICLE DESC, ORIGINE ASC

Résultat OK


L’objectif est d’afficher les informations de la table de manière interfacée via PHP ert MySql, dans l’ordre énoncé ci-dessus.

Le code utilisé est le suivant, avec la variable $pos initialisée avec « 2008-2009 »

        $request =@mysql_query("SELECT ID_PRESSE,ORIGINE,DATE_ARTICLE FROM FOOT_PRESSE WHERE SAISON=\"$pos\" ORDER BY DATE_ARTICLE DESC, ORIGINE ASC") or die (mysql_error());
        $nb = mysql_num_rows($request);
        if($nb>0){
            if($request){
                while($ligne = mysql_fetch_array($request)){
                    if($id && $id == $ligne[0]) echo "<option value=\"".$ligne[0]."\" selected>".$ligne[1]."(".r_date_format($ligne[2]).")</option>";
                    else echo "<option value=\"".$ligne[0]."\">".$ligne[1]."(".r_date_format($ligne[2]).")</option>";
                }
            }
        }

Or, les enregistrements sont affichés classés par ordre CROISSANT sur ORIGINE, puis sur DATE_ARTICLE en ordre DECROISSANT.décroissante.

Cela donne donc ceci :
ActuFoot34 – 2009/05/10
Indépendant – 2009/05/17
Midi Libre – 2009/05/23
Midi Libre – 2009/05/17
Midi Libre – 2009/05/03

Cela peut être vu à l’adresse www.asb-foot.com, option Presse, et en sélectionnant la saison « 2008-2009 ».

Pouvez-vous m’aider à trouver l’erreur ?

Cordialement

Pied de page des forums

Propulsé par FluxBB