créer des liens avec double condition

Petit nouveau ! | 5 Messages

04 juin 2011, 14:42

Bonjour à tous,
je viens vous demander de l'aide car je bloque.
J'ai besoin de mettre deux conditions dans un leun.
Je souhaiterai mettre dans <a href = \"index.php?p=$i \"> $i </a> - " ,
une autre condition num=$annee, j'ai tenté<a href = \"index.php?num=$annee?p=$i \"> $i </a> - " mais ca ne fonctionne pas.
Est ce que je m'y prends mal?
Merci d'avance pour votre aide.

Petit nouveau ! | 5 Messages

04 juin 2011, 15:40

Enfait j'ai une page index.php qui se trouve dans mon sous repertoire.
Dans cette page j'affiche via une liste de puce différentes années qui correspondent aux années des photos.
Lorsque je clique sur une année toute les photo enregistrée sous cette année sont affichées.
je suis alors redirigé pour ça vers la page /photos/photo.php/num=2011. Ou num est égal à l'année.

Mon soucis est que je souhaite afficher seulement 18 photos par page, j'ai donc mis un code pour avoir une pagination et plusieurs pages si le nombre de photos est supérieure à 18.

Voici le code de la page photo.php.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Titre de la page</title> </head> <body> <?php $annee=$_GET['num']; // code bannière haut de page $title = "Les photos de la promotion $annee"; include ($_SERVER["DOCUMENT_ROOT"].'/inc/banniere.php'); // code menu gauche include ($_SERVER["DOCUMENT_ROOT"].'/inc/menu.php'); ?> <div id="corps"> <h1><?php echo $title ?></h1> <?php include ($_SERVER["DOCUMENT_ROOT"].'/inc/connect.php'); $requete= "SELECT COUNT(id) as nbphoto, annee, lien FROM photo where annee= $annee"; $resultat = mysql_query($requete) or die ('ERREUR'.mysql_error()); $tableau = mysql_fetch_assoc($resultat); if (isset($_GET['p'])){ $pagecourrante=($_GET['p']); } else { $pagecourrante=1; } $nbphoto=$tableau['nbphoto']; $parpage =15; $nbpage= ceil($nbphoto/$parpage); $requete= "SELECT id, lien FROM photo where annee= $annee LIMIT ".(($pagecourrante-1) * $parpage).",$parpage "; //on evnvoie la requete a php pour ca on utilise mysql query qui prend en paramètre la requete a exécuter $resultat = mysql_query($requete) or die ('ERREUR'.mysql_error()); while ($tableau = mysql_fetch_assoc($resultat)){ // Récupération des valeurs dans la table $lien = '<a href="'.$tableau['lien'].'" target=\"_blank\"><img src="'.$tableau['lien'].'" width="255" height="170"/>'; // affichage des photos echo "$lien"; } echo "<hr/>"; for ($i=1; $i<= $nbpage; $i ++){ echo "<a href = \"index.php?p=$i \"> $i </a> - "; } ; ?> </div> <?php // code bas de page include ($_SERVER["DOCUMENT_ROOT"].'/inc/bas.php'); ?> </body> </html>
Comment dois je faire pour que la page 2 corresponde a la bonne année?

Merci
Modifié en dernier par kakahouette le 04 juin 2011, 17:45, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 juin 2011, 16:47

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ


Concernant ta première question, les paramètres qui sont passés après le "?" dans l'url doivent être séparés par des "&" :

Code : Tout sélectionner

ma_page.php?param=valeur&param2=valeur&...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

04 juin 2011, 17:47

Désolé pour l'oublie des balises codes c'est corrigé et merci pour la reponse je vais essayer.

Petit nouveau ! | 5 Messages

04 juin 2011, 18:05

Je penses ne pas avoir tout compris,
en effet à partir de l'index je choisit l'année pour laquelle je souhaite voire les photos. Je suis alors dirigé vers la page photo.php?num=$annee.
Mais je ne souhaite pas afficher plus de 18 photos par page.
J'ai essayé de faire index.php?num=$annee&p=$i, mais lorsque je clique que la page 2 je retourne toujours sur la page index.
Je penses qu'il y à un soucis avec la récupération de l'année. Mais je ne sais pas comment faire.

Je remets le code au cas ou:

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Titre de la page</title> </head> <body> <?php $annee=$_GET['num']; // code bannière haut de page $title = "Les photos de la promotion $annee"; include ($_SERVER["DOCUMENT_ROOT"].'/inc/banniere.php'); // code menu gauche include ($_SERVER["DOCUMENT_ROOT"].'/inc/menu.php'); ?> <div id="corps"> <h1><?php echo $title ?></h1> <?php include ($_SERVER["DOCUMENT_ROOT"].'/inc/connect.php'); $requete= "SELECT COUNT(id) as nbphoto, annee, lien FROM photo where annee= $annee"; $resultat = mysql_query($requete) or die ('ERREUR'.mysql_error()); $tableau = mysql_fetch_assoc($resultat); if (isset($_GET['p'])){ $pagecourrante=($_GET['p']); } else { $pagecourrante=1; } $nbphoto=$tableau['nbphoto']; $parpage =15; $nbpage= ceil($nbphoto/$parpage); $requete= "SELECT id, lien FROM photo where annee= $annee LIMIT ".(($pagecourrante-1) * $parpage).",$parpage "; //on evnvoie la requete a php pour ca on utilise mysql query qui prend en paramètre la requete a exécuter $resultat = mysql_query($requete) or die ('ERREUR'.mysql_error()); while ($tableau = mysql_fetch_assoc($resultat)){ // Récupération des valeurs dans la table $lien = '<a href="'.$tableau['lien'].'" target=\"_blank\"><img src="'.$tableau['lien'].'" width="255" height="170"/>'; // affichage des photos echo "$lien"; } echo "<hr/>"; for ($i=1; $i<= $nbpage; $i ++){ echo "<a href = \"index.php?num=$annee&p=$i \"> $i </a> - "; } ; ?> </div> <?php // code bas de page include ($_SERVER["DOCUMENT_ROOT"].'/inc/bas.php'); ?> </body> </html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 juin 2011, 19:02

Est-ce que ton lien ne devrait pas plutôt être "photo.php?num=$annee&p=$i" ? (au lieu de index.php)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

04 juin 2011, 19:20

oui c'est bien ça.
Merci beaucoup pour ton aide.
bonne soirée