bedoc
Messages postés5Date d'inscriptionmercredi 18 juillet 2007StatutMembreDernière intervention18 juillet 2007
-
18 juil. 2007 à 11:05
rethenor
Messages postés48Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention 9 mai 2011
-
25 juil. 2007 à 20:59
hello à tous
je sais que ce problème doit revenir assez régulièrement, mais j'ai un petit soucis avec un code trouvé sur ce site, ici
je l'ai intégré dans ma page, il m'affiche bien le nombre de pages (j'ai choisi 30 lignes par pages), j'ai 50 entrées dans ma base et il m'affiche 2 pages, donc jusque là ça va. mais par contre impossible d'afficher les résultats en question ! et j'ai beau regarder le code, je ne trouve pas ce qui cloche.
----------------------------
<!-- Nous allons afficher les résultats dans les cellules suivantes -->
<?
// on initialise les variables
$msg_page= 30; // donne le nombre de ligne a lister avant de passer a la page suivante
$page=1;
$ref=0;
// on compte le nombre d'enregistrement dans la table
$reponsesql=mysql_query("SELECT * FROM audio WHERE nav='$navaudio'");
$nbmsg = mysql_num_rows($reponsesql);
// on cherche a obtenir le nombre de page que l'on va devoir afficher
$nbpage=$nbmsg/$msg_page;
$nbpage=ceil($nbpage);
//on demarre la variable qui va contenir la chaine complete des liens vers les pages
$aff_gestion_page = "Page : ";
// on cree les liens pour chaque pages
while ($page<=$nbpage)
{
// si la page pour laquel on cree le lien est la page sur laquel on est, alors on ne cree pas de lien pour cette page
if($page==($_GET[idpage]/$msg_page)+1) $aff_gestion_page .= " $page
";
else $aff_gestion_page . = " [fiche_bootleg.php?id=<? echo $ligne['id']; ?> <? echo $ligne["date"];?>]</td>
<td width="12%"><? echo stripslashes($ligne["ville"]); ?></td>
<td width="5%"><? echo $ligne["source"]; ?></td>
<td width="5%"><? echo $ligne["son"]; ?></td>
<td width="5%"><? echo $ligne["support"]; ?></td>
<td width="26%" align="left"><? echo $ligne["genealogie"]; ?></td>
<td width="37%" align="left" class="texte"><? if ($ligne["matos"] != "") {
?> <? echo nl2br (stripslashes($ligne["matos"])); ?>
<? }
il m'indique le message "Problème de sélection" (j'ai mis en gras) et ne me retourne pas les résultats... je sais pas si ça a un rapport avec le code pour l'alternance des couleurs des lignes de mon tableau, mais si jamais vous voyez ce qui cloche, ça m'aiderai fortement.
eplanet
Messages postés112Date d'inscriptiondimanche 6 juin 2004StatutMembreDernière intervention19 septembre 2007 18 juil. 2007 à 11:30
Ca semble être un problème au niveau de ta requête SQL... je ne sais plus si c'est possible de passer la valeur d'un tableau comme tu le fais dans une chaine de caractères...
Essaie ca :
$query="SELECT * FROM audio WHERE nav='$navaudio' ORDER BY date LIMIT ".$_GET[idpage].",$msg_page";
Si ca ne marche toujours pas, vérifie que toutes tes variables dans la requête sont correctes ainsi que le nom de la table et des champs.
bedoc
Messages postés5Date d'inscriptionmercredi 18 juillet 2007StatutMembreDernière intervention18 juillet 2007 18 juil. 2007 à 12:01
euh ben c'est une bonne question !
c'est un code que j'ai repris sur ce site (j'ai mis le lien plus haut) donc je t'avoue que je ne sais pas si c'est par là que ça cloche. mais d'après les commentaires qu'il y avait, ça marchait normalement
bedoc
Messages postés5Date d'inscriptionmercredi 18 juillet 2007StatutMembreDernière intervention18 juillet 2007 18 juil. 2007 à 13:40
ça ne fonctionne pas mieux...
j'ai réussi à trouver un autre code qui fonctionne, sauf que j'ai un problème pour les liens des paginations
j'aimerai qu'il me récupère une variable dans le lien, mais je n'arrive à l'insérer sans avoir un message d'erreur
<? }
/* Nb d'enregistrement total */
$nb_total = mysql_query("SELECT COUNT(*) AS nb_total FROM audio WHERE nav='$navaudio'");
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];
TestOunet_0
Messages postés10Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention23 novembre 2007 18 juil. 2007 à 14:22
"j'ai réussi à trouver un autre code qui fonctionne mais ..."
Pour moi c'est reculer pour mieux sauter, et par expérience, je pense pouvoir te dire que passer sur un autre code ne règle pas toujours le problème (même des fois pas du tout :o)
Si tu ne comprends pas tout dans un code,tu retrouvera d'autres problèmes dans un autre, chacun ayant "SA" syntaxe propre.
Le mieux est de se baser sur un seul, et de le bosser à fond, et comme tu le fait poster sur les forums pour demander de l'aide !
(le cas présent je ne peux t'aider faute de temps)
rethenor
Messages postés48Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention 9 mai 2011 25 juil. 2007 à 20:57
Il me semble avoir déjà eu ce cas à traiter...
Si le nombre de lignes que tu fixes par page est 30, je partirais avec une variable $debut égale à 0 et je créerais une variable incrément égale à 30 et à chaque appel de la page, j'incrémente... (par ex, la page s'appelle show.php. 1er appel: http://.....show.php)
<?php
$increment = 30;
if(!$debut) { $debut = 0; }
$fin = $debut + $increment;
//... construction de la requete
$requete = "..... LIMIT $debut, $fin;";
// exécution, affichage des lignes
// puis affichage d'un bouton ou d'un lien vers la page suivante
avec show.php?debut=$fin; // le début suivant est égal à cette fin ici
...
Si tu veux aller à une page quelqconque (le nombre total de pages possibles ayant été préalablement calculé et rangé dans une variable $nbpages), tu peux faire une liste déroulante pour aller de la page 1 à la page $nbpages. Les values de la liste démarrant à 0 et allant de $increment en $increment.
La value selectionnée est à passer en paramètre à ta page :
show.php?debut=[valeur-selectionnée-dans-la-liste]
Je sais pas si ça te convient comme ça... ?
Si tu veux un exemple en action:
http://www.ruedescollectionneurs.com rubrique: Boutique
Choisir un thème d'affiche => listage page/page ($increment=10. Réglable)