Affichage page par page
Résolu
yfchauer
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
yfchauer Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
yfchauer Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonsoir à tous,
Après avoir potassé plusieurs tutos, j'ai réussi à créer l'affichage d'informations sur plusieurs pages.
Je récupère 'rubrique' par la méthode post depuis un formulaire. la première page s'affiche correctement, mais dès que je clique sur le lien autre que la première page, j'ai un message d'erreur.
voici le message d'erreur : Notice: Undefined index: rubrique in d:\transfert_sfr\affiche_album.php on line 11
Ci-après le script :
<?php
$pagetitre ="Affichage des photos de ";
include ('Modeles/entete.php');
require_once ('Securite/flus_connect.php');
// La description
$query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc
FROM t_rubrique
WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
$result = mysql_query($query) or die("ERROR");
$RubDesc = mysql_result($result,0,"RubDesc");
$Nom_Rubrique = mysql_result($result,0,"Nom_Rubrique");
// Le nombre d'images
$query = "SELECT count(Id_Image) AS ImgCount
FROM t_images
WHERE Num_Rubrique=\"{$_POST['rubrique']}\"";
$result = mysql_query($query) or die("ERROR");
$ImgCount = mysql_result($result,0,"ImgCount");
if ($ImgCount ==1)
{
echo "<p>L'Album de <font size ='+2'>" . $Nom_Rubrique . "</font> dispose de " .$ImgCount ." photo </p>";
}
elseif($ImgCount >1)
{
echo "<p>L'Album de <font size ='+2'>" .$Nom_Rubrique . "</font> dispose de " . $ImgCount ." photos </p>";
}
else
{
echo "</p>Il n'y a pas encore de photos pour l'album : " . $Nom_Rubrique. " </p>";
}
echo "-------------------------------------------------------------------------------<br/>";
$requete = "SELECT * FROM t_images WHERE Num_Rubrique =\"{$_POST['rubrique']}\"";
$resultat = mysql_query ($requete) or die ('Requête impossible <br />'.$requete . '<br />'. mysql_error());
$NbTotal = mysql_num_rows($resultat);
/*
PARTIE PERMETTANT D'AFFICHER LES IMAGES PAGES PAR PAGES
DEBUT DU SCRIPT --------------------------------------
*/
$AfficheParPage = 15; //Nombre d'images affichées par page.
$NbTotalDePage = ceil($NbTotal / $AfficheParPage);
if(isset($_GET['page']))
{
$PageActuelle = intval($_GET['page']);
if($PageActuelle > $NbTotalDePage)
{
$PageActuelle = $NbTotalDePage; // Si la page active est supérieure au nombre total des pages,
// Alors la page active est égale au nombre total des pages.
}
}
else
{
$PageActuelle = 1; // Sinon page active est égale à 1.
}
$PremiereEntree = ($PageActuelle - 1) * $AfficheParPage;
//AFFICHAGE DE LA NAVIGATION DE PAGE PAR PAGE.
echo "<p align ='right'>Page : ";
for ($i = 1; $i <= $NbTotalDePage; $i++)
{
if($i == $PageActuelle)
{
echo ' [ '.$i. ' ] ';
}
else
{
echo '<A HREF="affiche_album.php?page=' .$i. '"> '.$i.'</A> ';
}
}
echo "</p>";
/*
* FIN DE LA PARTIE PERMETTANT LES IMAGES PAGES PAR PAGES
* FIN DU SCRIPT------------------------------------------
*/
//Je crée la table dans laquelle les images seront affichées.
echo "<table border ='1' width = '100%'><tr>";
// Je récupère la listes des images de la rubrique sélectionnnée.
$requete = "SELECT Id_Image, Nom_Image, Legende_Image, Format_Image, Taille_Image
FROM t_images WHERE Num_Rubrique = \"{$_POST['rubrique']}\" ORDER BY Heure_Image DESC";
$resultat = mysql_query($requete) or die ('Requête impossible '.mysql_error());
//J'affiche 3 images par ligne.
$NbImgLigne = 3;
$NumImgLigne = 0;
//Je traite les images les une après les autres.
while($image = mysql_fetch_array($resultat))
{
// Passe l'affichage des images à la ligne suivante si 4 images affichées.
if ($NumImgLigne>=$NbImgLigne)
{
echo "</tr><tr>";
$NumImgLigne = 0;
}
$NumImgLigne++;
//Je commence une colonne pour y inclure l'image.
echo "<td align ='center'>";
// Je récupère l'Id et le nom de l'image, en déduit le nom de la miniature
$Id_Image = $image['Id_Image'];
$Nom_Image = $image['Nom_Image'];
$Legende_Image = $image['Legende_Image'];
$Mini_Image = "min_$Nom_Image";
// Chemin absolu de la miniature
$CheminAbsoluImagette = "./Images/". $Nom_Rubrique. "/Miniatures/". $Mini_Image;
// Je récupère les dimensions de l'imagette
$TailleImage = ImageCreateFromJpeg($CheminAbsoluImagette);
$LargeurImage = imagesx($TailleImage);
$HauteurImage = imagesy($TailleImage);
// Affiche le nom de l'image et sa miniature
echo "$Nom_Image <br /><img src ='$CheminAbsoluImagette'
width ='$LargeurImage' height ='$HauteurImage' border ='0' alt='$Nom_Image'><br />
$Legende_Image";
// Je termine la colonne du tableau de cette image
echo "</td>";
}
echo "</tr></table>";
echo "<p align ='right'>Page : ";
for ($i = 1; $i <= $NbTotalDePage; $i++)
{
if($i == $PageActuelle)
{
echo ' [ '.$i. ' ] ';
}
else
{
echo '<A HREF="affiche_album.php?page=' .$i. '"> '.$i.'</A> ';
}
}
echo "</p>";
include ('Modeles/pied_page.php');
?>
Merci d'avance pour votre aide
Après avoir potassé plusieurs tutos, j'ai réussi à créer l'affichage d'informations sur plusieurs pages.
Je récupère 'rubrique' par la méthode post depuis un formulaire. la première page s'affiche correctement, mais dès que je clique sur le lien autre que la première page, j'ai un message d'erreur.
voici le message d'erreur : Notice: Undefined index: rubrique in d:\transfert_sfr\affiche_album.php on line 11
Ci-après le script :
<?php
$pagetitre ="Affichage des photos de ";
include ('Modeles/entete.php');
require_once ('Securite/flus_connect.php');
// La description
$query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc
FROM t_rubrique
WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
$result = mysql_query($query) or die("ERROR");
$RubDesc = mysql_result($result,0,"RubDesc");
$Nom_Rubrique = mysql_result($result,0,"Nom_Rubrique");
// Le nombre d'images
$query = "SELECT count(Id_Image) AS ImgCount
FROM t_images
WHERE Num_Rubrique=\"{$_POST['rubrique']}\"";
$result = mysql_query($query) or die("ERROR");
$ImgCount = mysql_result($result,0,"ImgCount");
if ($ImgCount ==1)
{
echo "<p>L'Album de <font size ='+2'>" . $Nom_Rubrique . "</font> dispose de " .$ImgCount ." photo </p>";
}
elseif($ImgCount >1)
{
echo "<p>L'Album de <font size ='+2'>" .$Nom_Rubrique . "</font> dispose de " . $ImgCount ." photos </p>";
}
else
{
echo "</p>Il n'y a pas encore de photos pour l'album : " . $Nom_Rubrique. " </p>";
}
echo "-------------------------------------------------------------------------------<br/>";
$requete = "SELECT * FROM t_images WHERE Num_Rubrique =\"{$_POST['rubrique']}\"";
$resultat = mysql_query ($requete) or die ('Requête impossible <br />'.$requete . '<br />'. mysql_error());
$NbTotal = mysql_num_rows($resultat);
/*
PARTIE PERMETTANT D'AFFICHER LES IMAGES PAGES PAR PAGES
DEBUT DU SCRIPT --------------------------------------
*/
$AfficheParPage = 15; //Nombre d'images affichées par page.
$NbTotalDePage = ceil($NbTotal / $AfficheParPage);
if(isset($_GET['page']))
{
$PageActuelle = intval($_GET['page']);
if($PageActuelle > $NbTotalDePage)
{
$PageActuelle = $NbTotalDePage; // Si la page active est supérieure au nombre total des pages,
// Alors la page active est égale au nombre total des pages.
}
}
else
{
$PageActuelle = 1; // Sinon page active est égale à 1.
}
$PremiereEntree = ($PageActuelle - 1) * $AfficheParPage;
//AFFICHAGE DE LA NAVIGATION DE PAGE PAR PAGE.
echo "<p align ='right'>Page : ";
for ($i = 1; $i <= $NbTotalDePage; $i++)
{
if($i == $PageActuelle)
{
echo ' [ '.$i. ' ] ';
}
else
{
echo '<A HREF="affiche_album.php?page=' .$i. '"> '.$i.'</A> ';
}
}
echo "</p>";
/*
* FIN DE LA PARTIE PERMETTANT LES IMAGES PAGES PAR PAGES
* FIN DU SCRIPT------------------------------------------
*/
//Je crée la table dans laquelle les images seront affichées.
echo "<table border ='1' width = '100%'><tr>";
// Je récupère la listes des images de la rubrique sélectionnnée.
$requete = "SELECT Id_Image, Nom_Image, Legende_Image, Format_Image, Taille_Image
FROM t_images WHERE Num_Rubrique = \"{$_POST['rubrique']}\" ORDER BY Heure_Image DESC";
$resultat = mysql_query($requete) or die ('Requête impossible '.mysql_error());
//J'affiche 3 images par ligne.
$NbImgLigne = 3;
$NumImgLigne = 0;
//Je traite les images les une après les autres.
while($image = mysql_fetch_array($resultat))
{
// Passe l'affichage des images à la ligne suivante si 4 images affichées.
if ($NumImgLigne>=$NbImgLigne)
{
echo "</tr><tr>";
$NumImgLigne = 0;
}
$NumImgLigne++;
//Je commence une colonne pour y inclure l'image.
echo "<td align ='center'>";
// Je récupère l'Id et le nom de l'image, en déduit le nom de la miniature
$Id_Image = $image['Id_Image'];
$Nom_Image = $image['Nom_Image'];
$Legende_Image = $image['Legende_Image'];
$Mini_Image = "min_$Nom_Image";
// Chemin absolu de la miniature
$CheminAbsoluImagette = "./Images/". $Nom_Rubrique. "/Miniatures/". $Mini_Image;
// Je récupère les dimensions de l'imagette
$TailleImage = ImageCreateFromJpeg($CheminAbsoluImagette);
$LargeurImage = imagesx($TailleImage);
$HauteurImage = imagesy($TailleImage);
// Affiche le nom de l'image et sa miniature
echo "$Nom_Image <br /><img src ='$CheminAbsoluImagette'
width ='$LargeurImage' height ='$HauteurImage' border ='0' alt='$Nom_Image'><br />
$Legende_Image";
// Je termine la colonne du tableau de cette image
echo "</td>";
}
echo "</tr></table>";
echo "<p align ='right'>Page : ";
for ($i = 1; $i <= $NbTotalDePage; $i++)
{
if($i == $PageActuelle)
{
echo ' [ '.$i. ' ] ';
}
else
{
echo '<A HREF="affiche_album.php?page=' .$i. '"> '.$i.'</A> ';
}
}
echo "</p>";
include ('Modeles/pied_page.php');
?>
Merci d'avance pour votre aide
A voir également:
- Affichage page par page
- Supprimer page word - Guide
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
- Page privée - Guide
- Page accueil iphone - Guide
2 réponses
Bonjour,
Le problème vient de cette instruction :
// La description
$query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc
FROM t_rubrique
WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
Le tableau POST correspond à des données passées via un formulaire. Or tu utilises un lien... Ce tableau est donc vide. Pour récupérer des données depuis un lien, il faut utiliser $_GET.
Le plus simple à mon avis est de modifier d'un côté tes liens :
deviendrait
et d'un autre côté la récupération de la rubrique :
deviendrait :
Une autre solution serait d'utiliser des sessions, mais cela empêcherait, par exemple, de parcourir plusieurs rubriques dans deux pages séparées (sauf à gérer plusieurs sessions, ce qui commence à devenir un peu complexe)
Xavier
Le problème vient de cette instruction :
// La description
$query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc
FROM t_rubrique
WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
Le tableau POST correspond à des données passées via un formulaire. Or tu utilises un lien... Ce tableau est donc vide. Pour récupérer des données depuis un lien, il faut utiliser $_GET.
Le plus simple à mon avis est de modifier d'un côté tes liens :
echo '<A HREF="affiche_album.php?page=' .$i. '"> '.$i.'</A> ';
deviendrait
echo "<A HREF='affiche_album.php?page=$i&rubrique=$rubrique'>$i</A> ";
et d'un autre côté la récupération de la rubrique :
$query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc FROM t_rubrique WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
deviendrait :
$rubrique = ''; if (isset($_POST['rubrique'])) $rubrique = $_POST['rubrique']; else if (isset($_GET['rubrique'])) $rubrique = $_GET['rubrique']; $query = "SELECT Nom_Rubrique, Desc_Rubrique AS RubDesc FROM t_rubrique WHERE Id_Rubrique='$rubrique'";
Une autre solution serait d'utiliser des sessions, mais cela empêcherait, par exemple, de parcourir plusieurs rubriques dans deux pages séparées (sauf à gérer plusieurs sessions, ce qui commence à devenir un peu complexe)
Xavier