Problème de variable et affichage page à page

filrouge
Invité n'ayant pas de compte PHPfrance

27 nov. 2006, 19:42

Bonjour,


Le code ci-dessous qui me permet d'afficher des images d'une base de données sur n colonnes avec nb d'enregistrements déterminés par page fonctionnent très bien sauf lorsque cet affichage dépend d'une variable passée par URL. Dans ce cas j'ai une première page ok et quand je clique sur page 2, par exemple, j'obtiens le message d'erreur suivant :

Notice: Undefined index: nom_rubrique_galerie in /Applications/MAMP/htdocs/affichage.php on line 2

Notice: Undefined variable: tablo in /Applications/MAMP/htdocs/affichage.php on line 22

J'y suis depuis des semaines et je ne trouve aucune solution.
Merci d'avance si quelqu'un a une lumière.

Code : Tout sélectionner

<?php //========================================= // includes du fichier fonctions //========================================= require 'fonctions.php'; //========================================= //On récupère la variable //========================================= if( isset( $_GET['nom_rubrique_galerie'] ) ) echo $_GET['nom_rubrique_galerie']; $rubrique = $_GET['nom_rubrique_galerie']; //========================================= // initialisation des variables //========================================= // on va afficher 5 résultats par page. $nombre = 9; // si limite n'existe pas on l'initialise à zéro if (!$limite) $limite = 0; // on cherche le nom de la page. $path_parts = pathinfo($_SERVER['PHP_SELF']); $page = $path_parts["basename"]; //========================================= // connection à la DB //========================================= $db = "book"; $link = mysql_connect ('localhost:8889', 'root', 'root') or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //========================================= // requête SQL qui compte le nombre total // d'enregistrements dans la table. //========================================= $select = "SELECT count(id_galerie) FROM galerie WHERE nom_rubrique_galerie='$rubrique'"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0]; //========================================= // vérifier la validité de notre variable // $limite; //========================================= $verifLimite= verifLimite($limite,$total,$nombre); // si la limite passée n'est pas valide on la remet à zéro if(!$verifLimite) { $limite = 0; } //========================================= // requête SQL qui ne prend que le nombre // d'enregistrement necessaire à l'affichage. //========================================= $select = "SELECT * FROM galerie WHERE nom_rubrique_galerie='$rubrique' limit ".$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $data = mysql_fetch_array($result); ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php // si on a récupéré un resultat on l'affiche. //========================================= //--- Résultat $result = mysql_query($select); while($data = mysql_fetch_array($result)) { // on stocke nos données $tablo[]=$data; } $nbcol=3; //--- détermine le nombre de colonnes de l'affichage echo '<table width="400" height="400">'; for($i=0;$i<count($tablo);$i++){ //--- les valeurs que l'on souhaite afficher $valeur1=$tablo[$i]['vignette_galerie']; if($i%$nbcol==0) echo '<tr height="120">'; echo '<td align="center" width="128"><img src="photos/galerie/'.$valeur1.'" border="0" ><br></td>'; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; // on libère le résultat mysql_free_result($result); //====================================== $limitesuivante = $limite + $nombre; $limiteprecedente = $limite - $nombre; if($limite != 0) { echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>'; } if($limitesuivante < $total) { echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>'; } //========================================= // vérifier la validité de notre variable // $limite; //========================================= $verifLimite= verifLimite($limite,$total,$nombre); // si la limite passée n'est pas valide on la remet à zéro if(!$verifLimite) { $limite = 0; } //========================================= // si le nombre d'enregistrement à afficher // est plus grand que $nombre //========================================= if($total > $nombre) { // affichage des liens vers les pages affichePages($nombre,$page,$total); } ?> </body> </html> Fin du fichier affichage.php ------------------------------------------------------------------------------------------ Et code du fichier fonctions.php : <?php //récupération de $limite if(isset($_GET['limite'])) $limite=$_GET['limite']; else $limite=0; function verifLimite($limite,$total,$nombre) { // je verifie si limite est un nombre. if(is_numeric($limite)) { // si $limite est entre 0 et $total, $limite est ok // sinon $limite n'est pas valide. if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) { // j'assigne 1 à $valide si $limite est entre 0 et $max $valide = 1; } else { // sinon j'assigne 0 à $valide $valide = 0; } } else { // si $limite n'est pas numérique j'assigne 0 à $valide $valide = 0; } // je renvois $valide return $valide; } function affichePages($nb,$page,$total) { $nbpages=ceil($total/$nb); $numeroPages = 1; $compteurPages = 1; $limite = 0; echo '<table border = "0" ><tr>'."\n"; while($numeroPages <= $nbpages) { echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n"; $limite = $limite + $nb; $numeroPages = $numeroPages + 1; $compteurPages = $compteurPages + 1; if($compteurPages == 10) { $compteurPages = 1; echo '<br>'."\n"; } } echo '</tr></table>'."\n"; } ?>
:( :(

Mammouth du PHP | 19672 Messages

27 nov. 2006, 20:01

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Dany31
Invité n'ayant pas de compte PHPfrance

31 janv. 2014, 16:38

Bonjour à tous,

J ai le même que Filrouge est ce que tu as trouver la solution ?

:? Please

Mammouth du PHP | 19672 Messages

31 janv. 2014, 16:48

Salut,
le lien de la réponse précédente étant mort, voici le nouveau lien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

31 janv. 2014, 17:07

Donc il suffit juste ajouté ce code pour connaître les variables d une page à une autre ?

C est bien ça ?


<?php

echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");

?>

Mammouth du PHP | 19672 Messages

31 janv. 2014, 17:11

Non, ça, c'est un prologue XML pour une page codée en XHTML et ce n'est même pas obligatoire. Ce tuto date quand même pas mal.

Si ton problème est le même que celui du post original, tu trouveras la réponse dans ce tuto. Si ton problème est différent, crée un nouveau sujet.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: