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 PHP Discussion :

Trois requêtes en une seule


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Par défaut Trois requêtes en une seule
    Bonjour,

    J'aimerai comprendre si ce que je veux avoir est possible ou non svp? bon je vous expose le problème:

    j'ai une table (albums) avec 6 champs : (id, titre, lien, image, timestamp, genre)

    et j'ai 3 pages album-vacance.php, album-nature.php, album-divers.php

    dans la page album-vacance.php je fait une requête qui affiche toute les images qui ont pour genre Vacance (WHERE genre='Vacance')
    dans la page album-nature.php toute les images qui ont pour genre Nature
    et dans album-divers.php --> genre Divers

    ma question c'est est-il possible de faire ça dans une seule page avec une seule requête sans avoir a créer des nouvelles pages
    avec des nouvelle requêtes?

    voici par exemple ma page album-vacance.php

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php 
    require("header.php");
    require("config.php"); 
     
    // connexion a la base BDD
    $connexion = mysql_connect($host,$user,$pass) or die("Connexion impossible au serveur ".$host);
    mysql_select_db($db,$connexion) or die ("La base ".$db." est introuvable sur ".$host);
     
    // On récupère le nombre total des albums qui se trouvent dans le champ genre = Vacance
    $retour = mysql_query("SELECT COUNT(*) AS nb_albums FROM albums WHERE genre='Vacance'");
    $donnees = mysql_fetch_array($retour);$totalDesAlbums = $donnees['nb_albums'];
     
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesAlbums / $nombreDalbumsParPage);
    $page = $_GET['page'];
    $pagePrecedente = $page - 1;
    $pageSuivante = $page + 1;
     
    if($pagePrecedente > 0)
     
    // bouton précédent
    {
           echo '<div id="pageprecedente"><a href="album-vacance.php?page=' . 
    $pagePrecedente . '"><img src="img/precedent.png" width="22" height="22" 
    border="0" /></a> </div>';
    }
    else
    {
           echo '<div id="pageprecedente"><img src="img/precedentnoir.png" width="22" height="22" border="0" /> </div>';
    }
     
    // les numéros des pages
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    { 
           echo '<div id="nombrepages"><a href="album-vacance.php?page=' . $i .
     '">' . $i . '</a> </div>';
     
    }
     
    // bouton suivant
    if($pageSuivante <= $nombreDePages)
    {
           echo '<div id="pagesuivante"><a href="album-vacance.php?page=' . $pageSuivante . '"><img       src="img/suivant.png" width="22" height="22" 
    border="0" /></a> </div>';
    }
    else
    {
           echo '<div id="pagesuivante"><img src="img/suivantnoir.png" width="22" 
    height="22"       border="0" /> </div>';
    }
     
    // ---------------.........---------------
    // on affiche les albums
    // ---------------------------------------
     
    if (isset($_GET['page']))
    {
           $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse
    }
           else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
           $page = 1; // On se met sur la page 1 (par défaut)
    }
     
     
    // On calcule le numéro du premier album qu'on prend pour le LIMIT de MySQL
    $premierAlbumAafficher = ($page - 1) * $nombreDalbumsParPage;
     
    $reponse = mysql_query("SELECT * FROM albums WHERE genre='Vacance' ORDER BY id DESC LIMIT " . $premierAlbumAafficher . ', ' . $nombreDalbumsParPage);
     
    while ($donnees = mysql_fetch_array($reponse))
    { 
     
    // la mise en page des albums avant l'affichage
    ?>	
           <div id="box">
           <p class="titre"><?php echo $donnees['titre']; ?></p>
           <p class ="date"><?php echo date('d/m/Y', $donnees['timestamp']); ?></p>
           <div id="CDhaut">
           <img src="img/CDhaut.gif" width="128" height="14" class="CDhautBug" />
           <div id="CDcentre">
           <img src="images/<?php echo $donnees['image']; ?>">
           </div>
           <img src="img/CDbas.gif" width="128" height="15" />
           <p class="telecharger"><a href="<?php echo $donnees['lien']; ?>" target="_blank">Télécharger la photo</a></p>
           </div>
           </div>
    <?php
    }
     
    mysql_close(); // Déconnexion de MySQL
    ?>
     
    <?php
    require("footer.php");
    ?>

    pour les autres pages j'ai copier la même page en modifiant le genre.

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    dans une variable GET tu mets la selection de ton tri
    et selon que ce soit vacance nature ou photo tu requetes différements et tu affiches différement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tri =$_GET['tri']
    SELECT * FROM albums WHERE genre like '$tri' ORDER BY id DESC LIMIT " . $premierAlbumAafficher . ', ' . $nombreDalbumsParPage);

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

    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut
    Je n'ai pas compris monsieur ça fait 2 semaines que je me suis mis à apprendre le php sur un site qu'est fait pour les grands nuls comme moi

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais nous dire ce que tu n'as pas compris ?

    Des passages de variables par l'URL tu en fais deja dans le code que tu nous a montré.

    L'utilisateur clique sur un lien du genre :
    http://...../index.php?tri=nature

    Et ensuite la valeur "tri" est recuperé et utilisé comme te l'as montré LeXo.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Par défaut bonjour
    ragarde abdallah!
    à la place de spécifier le genre dans la requete tu crée une variable (ex: $genre) que tu fait passer comme ta variable $page par l'url. dans la requete il suffit de remplacer le genre (Vacance ou nature ou divers ) par $genre.
    la requete sera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = mysql_query("SELECT * FROM albums WHERE genre='$genre' ORDER BY id DESC LIMIT " . $premierAlbumAafficher . ', ' . $nombreDalbumsParPage);
    ya rien de difficile!
    bon courage

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

    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut
    Citation Envoyé par loulitta Voir le message
    ragarde abdallah!
    à la place de spécifier le genre dans la requete tu crée une variable (ex: $genre) que tu fait passer comme ta variable $page par l'url. dans la requete il suffit de remplacer le genre (Vacance ou nature ou divers ) par $genre.
    la requete sera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = mysql_query("SELECT * FROM albums WHERE genre='$genre' ORDER BY id DESC LIMIT " . $premierAlbumAafficher . ', ' . $nombreDalbumsParPage);
    ya rien de difficile!
    bon courage
    je comprend mieux maintenant merci loulitta c'est super

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

Discussions similaires

  1. trois functions en une seule function
    Par vacknov dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/06/2007, 14h17
  2. [Requêtes] Selectionner une seule date parmis plusieurs
    Par Herman dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/03/2007, 15h01
  3. Lier trois tables dans une seule requête ?
    Par tempirate dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/06/2006, 19h27
  4. [SQL-SERVER 2000] Problème de requête sur une seule ligne
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/04/2006, 16h54
  5. Regrouper 3 requêtes dans une seule
    Par LadyArwen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/06/2003, 09h32

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