Affichage colonne + pagination d'un resultat sql

Résolu
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009 - 18 nov. 2009 à 18:37
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009 - 19 nov. 2009 à 20:53
Bonsoir à tous

Voilà je tourne en rond depuis plus d'une semaine à chercher un script valable de "pagination" et je ne trouve rien qui m'aille ....

Voilà en gros ce que je cherche : (c'est pour une galerie photo)
Je cherche à afficher mon resultat sous forme de tableau comprenant 3 x 3 photos .

Soit j'arrive à afficher 9 photos à la suite et un lien vers les pages suivantes quand il y a d'autres photos ...

Soit j'arrive à afficher toutes mes photos sur 3 colonnes mais sans pagination ...

Mais impossible de combiner les 2 !

Merci d'avance de votre aide.

ps: je peux vous filer les 2 "bouts" de code qui permettent d'arriver à ces 2 résultats si vous voulez

14 réponses

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
19 nov. 2009 à 18:37
Bon excuse moi encore, j'ai fait ça à chaud mais la je me suis décidé à faire un test et voici la bonne façon :

$i=1;
$cutlimit=3;

$sql = mysql_query(SELECT .....);

echo "\";

while ($ligne = mysql_fetch_array($sql))
{
echo \"$ligne[$image], \";
if($i==$cutlimit)
{
$cutlimit += $cutlimit;
echo \"----
\";
}
$i++;
}
echo "
";



______________________________________________________________________
Test du chi2
3
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
18 nov. 2009 à 20:58
J'ai avancé un peu mais j'ai une erreur que je n'arrive pas à résoudre...

Au lieu de m'afficher mes 9 premieres images sur la premiere page et les 2 dernieres sur la deuxieme page , il m'affiche 8 fois la premiere image , puis 8 fois la seconde etc etc...

Voici le code :

<html>
<head>
<title>Ma galerie</title>
<script type="text/javascript" src="lightbox.js"></script>

</head>



<?php
include ('fonction.inc.php');
// on se connecte à MySQL 
$connexion = mysql_connect('localhost', 'root', ''); 

// on sélectionne la base 
mysql_select_db('galerie',$connexion); 

// on crée la requête SQL qui permettra de choisir la technologie voulue
$sql = 'SELECT * FROM images ORDER BY numero DESC';


$parpage = 9; // Nombre d'enregistrements par page à afficher
$nbcol = 3;
$champ = 'lienmini';
$table = 'images';
$image = 'lien';


// On définit le suffixe du lien url qui affichera les pages
// $_SERVEUR['PHP_SELF'] donne l'arborescence de la page courante
$url = 'index.php'."?limit=";

$total = mysql_query($sql); // Résultat total de la requête $sql
$nblignes = mysql_num_rows($total); // Nbre total d'enregistrements

// On calcule le nombre de pages à afficher en arrondissant
// le résultat au nombre supérieur grâce à la fonction ceil()
$nbpages = ceil($nblignes/$parpage);


//==============================================================================
// Exemple d'affichage HTML
//==============================================================================


// Si une valeur 'limit' est passée par url, on vérifie la validité de
// cette valeur par mesure de sécurité avec la fonction validlimit()
// cette fonction retourne automatiquement le résultat de la requête
$result = validlimit($nblignes,$parpage,$sql);

// On affiche le résultat de la requête
echo '';
// On crée donc ici son propre tableau pour lequel on souhaite une pagination
while ($ligne = mysql_fetch_array($result)) {

$nb= count($ligne);
for($i=0;$i<$nb;$i++){
if($i%$nbcol==0)
echo '----
';
echo ', ';
if($i%$nbcol==($nbcol-1))
echo '';}
}echo '
';
// Menu de pagination que l'on place après la requête
echo "
";
echo pagination($url,$parpage,$nblignes,$nbpages);
echo "
";

mysql_free_result($result); // Libère le résultat de la mémoire


// on ferme la connexion à mysql 
mysql_close(); 
?>
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
18 nov. 2009 à 21:58
je tourne en rond depuis plus d'une semaine à chercher un script valable de "pagination"
T'a sûrement cherché j'en doute pas! Convenablement je pense pas !

et je ne trouve rien qui m'aille ....

Il est rare de trouver un script en parfaite adéquation avec ses besoins par contre on peu toujours s'inpirer d'un script ou d'un tutoriel.




Test du chi2
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
18 nov. 2009 à 22:04
hummm sympa la réponse , ça m'avance bien ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
18 nov. 2009 à 22:09
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 17:13
Il est très bien ton lien , je l'avais même déjà visité

Mais ça ne résolve pas mon problème car il parle juste de la pagination toute simple (chose que j'arrive à faire sans soucis)

Chose que j'arrive à faire également : afficher toutes mes images sur 3 colonnes.

Mais je n'arrive pas à faire les deux en même temps ! afficher un nombre d'images (en l'occurrence ici 9)sur plusieurs pages.

merci d'avance
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
19 nov. 2009 à 18:02
Procède ainsi :

Au départ la récupération dans la base de donnée est linéaire donc pour faire un affichage 3x3 il te faut coupé la récupération :

Exemple :

$i=0;
$cutlimit=3;

$sql = mysql_query(SELECT .....);

echo "\";

while ($ligne = mysql_fetch_array($sql))
{
echo \"$ligne[$image], \";
if($i==$cutlimit)
{
$cutlimit += $cutlimit;
echo \"----
\";
}
$i++;
}
echo "
";
Il s'agit d'une approche



______________________________________________________________________
Test du chi2
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 18:20
C'est déjà mieux mais pas encore ça ...

Là il m'affiche sur la premiere page : 4 photos , en dessous 3 puis en dessous 2.
et sur la deuxieme page , les deux dernieres photos.
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
19 nov. 2009 à 18:25
Non en faite c'est moi il faut mettre $cutlimit=2;


______________________________________________________________________
Test du chi2
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
19 nov. 2009 à 18:27
et j'ai oublié : dans le if() $cutlimit = $cutlimit+1;


______________________________________________________________________
Test du chi2
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 19:07
Ah ben niquel çà fonctionne ...

J'ai encore une fois pas tout compris mais bon je crois que ça fait tellement d'heure que je passe dessus que je vois plus rien .

Merci beaucoup de ta gentillesse et de ton aide.
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 19:11
D'ailleurs c'est avec ta solution sur la page 1 que ça fonctionne , celle là j'ai pas essayé encore mais je vais tester aussi.

merci encore
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
19 nov. 2009 à 19:38
OK, n'oublie pas de valider la bonne réponse


______________________________________________________________________
Test du chi2
0
Matmat21 Messages postés 11 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 20:53
voilà qui est fait
(j'ai validé ta derniere solution qui me parait etre la meilleure vu qu'on retrouve bien le nombre d'image qu'on désire par colonne en face de $cutlimit)
0
Rejoignez-nous