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 :

Affichage ordre sql par défaut [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut Affichage ordre sql par défaut
    Bonjour à tous

    J'ai un petit problème avec sql, quand j'ai créé plusieurs critères de tri, le problème est quand je veux rentrer sur ma page php je dois rentrer avec une adresse : /astuces/astuce-date.html si je veux rentrer avec astuces/ (donc sur index.php j'ai un message d'erreur sur la fonction ORDER,

    pour le rewritting :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^astuce-date\.html index.php?tri=astuce_date_ajout&sens=DESC [L]
    pour mon code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT *,DATE_FORMAT('.astuce_date_ajout.', \'%d-%m-%Y\') as datefr FROM astuce ORDER BY ' . $_GET['tri'] . ' ' . $_GET['sens'] . ' LIMIT '.$premiereEntree.', '.$messagesParPage.'';
    Comment faire pour que mes fonctions de tri restent, mais si l'on pointe vers astuces/ que ça prenne par défaut le tri par date ?

    si on enleve astuce-date.html, j'ai un message d'erreur.

    Merci

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut Message d'erreur
    Bonjour,

    Peux-tu passer ici le message d'erreur?

    Sinon, pourquoi ne pas tester si certaines données (paramètres ou variables) sont définis ou pas à l'aide de la fonction isset() (http://php.net/manual/fr/function.isset.php) par exemple.

    Bien cordialement,
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Salut

    Merci pour ta réponse. Voici le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    SELECT *,DATE_FORMAT(astuce_date_ajout, '%d-%m-%Y') as datefr FROM astuce ORDER BY LIMIT 0, 20
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 20' at line 1
    Cela vient de ORDER BY, comme je l'ai dit si je mets l'adresse :

    index.php?tri=astuce_date_ajout&sens=DESC

    ça lui indique de trier par dates descendantes, je récupères les variables avec la fonction GET : $_GET['tri'] et $_GET['sens'], jusque la tout va bien. Mais si je pointe vers index.php sans variables la fonction GET ne récupère rien et j'ai donc le message d'erreur. Je voulais savoir comment lui indiquer des variables de tri par défaut si l'on pointe vers index.php.

    [edit] Je regarde la function isset, mais je ne vois pas comment je peux la mettre dans la requète SQL ? Je vais faire quelque essai se soir.

    [re edit]^^ Je viens de faire un essai avec isset, ça devrait être ok. Si vraiment j'y arrive pas je reviens (au moins mettre réglé )

    Merci

  4. #4
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Re,

    Il faut alors vérifier si $_GET['tri'] et $_GET['sens'] sont définis, dans ce cas, appliquer leur contenu sinon, choisir une valeur par défaut.
    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
     
    <?php
        if (isset($_GET['tri']))
        {
            $tri = $_GET['tri'];
        }
        else
        {
            $tri = 'astuce_date_ajout';
        }
     
        if (isset($_GET['sens']))
        {
            $sens = $_GET['sens'];
        }
        else
        {
            $sens = 'ASC';
        }
        //le SQL
        $sql = "
        SELECT *,DATE_FORMAT(astuce_date_ajout, '%d-%m-%Y') as datefr 
        FROM astuce 
        ORDER BY ".$tri." ".$sens." 
        LIMIT ".$premiereEntree.", ".$messagesParPage;
    ?>
    Bien cordialement,
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Merciiiiii

    J'y étais presque !!! J'avais un problème de syntaxe dans order by, ça ne marchait donc pas. Un petit copier coller et une modif sql1 en sql3 et ça roule tout seul !!!


    Merci encore !

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

Discussions similaires

  1. affichage par défaut en ordre descendant de la colonne "date"
    Par Gmarin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/03/2013, 20h37
  2. Réponses: 8
    Dernier message: 04/10/2012, 09h47
  3. Réponses: 1
    Dernier message: 29/03/2006, 11h33
  4. affichage en détail par défaut
    Par Mut dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 18/05/2005, 09h15
  5. [MFC] Affichage des Scroll par défaut
    Par Kevgeii dans le forum MFC
    Réponses: 2
    Dernier message: 05/02/2004, 19h44

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