trois requêtes dans trois pages en une seule requête dans une page!

Petit nouveau ! | 1 Messages

22 juin 2008, 01:55

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 requete 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
<?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 cette page en modifiant le genre.

Merci d'avance pour vos réponses.
Modifié en dernier par korg-pa80 le 22 juin 2008, 12:56, modifié 1 fois.

Eléphant du PHP | 451 Messages

22 juin 2008, 03:26

Bonjour,

Bien sur que celà est possible tu récupere avec $_GET le type d'album à voir

Exemple:
Le lien serait http://www.monsite.com/album.php?type=vancance

Donc tu récupere en fesant
$type = $_GET['type'];

// donc $type serait égal à vacance
// ensuite tu utilise la variable $type dans tes requêtes mysql

Invité
Invité n'ayant pas de compte PHPfrance

22 juin 2008, 12:34

Bonjour je n'ai toujours pas compris :cry: je suis un gros débutant j'ai tout juste appris sur un site comment lire et écrire sur une table simple :oops: alors j'ai essayé de voir si je pouvais arriver a faire quelque chose de se que j'ai appris et finalement j'ai trouvé que faire une nouvelle page a chaque fois que je veux afficher des champs avec des conditions ça fait trop de pages trop de requêtes :shock:

Eléphant du PHP | 451 Messages

22 juin 2008, 13:05

Alors tu fais

Voici un exemple de requête.
// Récupération du type d'album
$type = $_GET['type'];

// Requête sql
$sql = "select * from album where genre='".$type."'";
Après tu n'as plus qu'à appliquer celà au autre requêtes.

Eléphant du PHP | 75 Messages

25 juin 2008, 08:09

Exemple:

Tu cliques sur le bouton "Nature" dans le menu, tu vas êtres dirigé à la page http://www.tonsite.com/photo.php?type=Nature.

Ton script qui sera, comme l'a dit djtec, du genre:
// Récupération du type d'album
$type = $_GET['type'];

// Requête sql
$sql = "SELECT * FROM album WHERE genre='".$type."'";
Donc là il va chercher dans la table tous les champs correspondant au genre "Nature".

Après t'as plus qu'à les afficher... :)