begin process at 2012 05 28 13:56:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Bug affichage page par page :-((


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Bug affichage page par page :-((

mercredi 11 mai 2005 à 20:47:36 | Bug affichage page par page :-((

wynelle

Bonjour à toutes et à tous,

J'ai un problème avec un affichage page à page pour lier 2 requêtes. Seule la 2ème requête ($result) prend bien en compte un affichage limité à 10 items par par page... la 1ère ($result_bis) affiche tous les résultats sans tenir compte de ce qui va suivre! La vilaine!?

Désolé pour le codage ci-dessous, les puristes vont probablement "bondir" mais je ne fais que m'inspirer de codes déjà existants.... c'est aussi pour ça que je calle!

Merci pour votre aide pour faire en sorte que j'ai bien un affichage de 10 résultats UNIQUEMENT sur chaque page tout en tenant compte du nombre de résultats des 2 requêtes.

mon code :

<?php include("online_connexion.php");

$nb_results_p_page = 10; // nombre de résultats par page
$nb_avant = 3; // nombre de page avant la page courante
$nb_apres = 3; // nombre de page après la page courante
$premiere = 1; // aficher le lien "première page" (1 ou 0)
$derniere = 1; // afficher le lien "dernière page" (1 ou 0)
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql)

$dpt_i = $HTTP_GET_VARS['dpt'];
$dpt = sprintf("%02s",$dpt_i);
$dpt_suiv_i = ($dpt + 1);
$dpt_suiv = sprintf("%02s",$dpt_suiv_i);

$type = $HTTP_GET_VARS['type'];

if(!empty($_POST['tri']))
{
$tri = $HTTP_POST_VARS['tri'];
}
else{
if(!empty($_GET['tri'])){$tri=$_GET['tri'];}else{$tri="CP";}
}

// comptage du nombre de lignes de la base
$result = mysql_query("SELECT count(ID) FROM inscrits WHERE CP>='".$dpt."000' AND CP<'".$dpt_suiv."000' AND TYPE!='".$type."' ORDER BY `CP` ASC");
if(!$result)
{
     // redirection erreur
     header("location: erreur.php");
     mysql_close($db);
     exit;
}
$ret = mysql_fetch_array($result);
// nombre de lignes
$nb_results = $ret[0];

$result = mysql_query("SELECT * FROM inscrits WHERE CP>='".$dpt."000' AND CP<'".$dpt_suiv."000' AND TYPE!='".$type."' AND PREMIUM='OUI' ORDER BY `PREMIUM` DESC,'".$tri."' ASC,`INTITULE` ASC LIMIT $start, $nb_results_p_page");
$result_bis = mysql_query("SELECT * FROM inscrits WHERE CP>='".$dpt."000' AND CP<'".$dpt_suiv."000' AND TYPE!='".$type."' AND PREMIUM!='OUI' ORDER BY `LISTE_FREE` ASC,'".$tri."' ASC,`INTITULE` ASC LIMIT $start, $nb_results_p_page");

if($nb_results) {
// debut du tableau
echo '<font color="#FD740F" size="1" face="Verdana">'.$nb_results.' référencements<p>';
echo '<form method="POST">';
echo '<p height="15" align="right"><select size="1" name="tri">';
echo '<option>choix de tri</option>';
echo '<option>CP</option>';
echo '<option>INTITULE</option>';
echo '<option>VILLE</option>';
echo '<option>NOM</option>';
echo '</select>&nbsp;';
echo '<input type="image" img border="0" src="images/Gif%20Anime/file.gif" width="19" height="19" alt="Validez votre choix de tri">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>';
echo '</form>';
echo '<TABLE width="495" border="0" cellpadding="0" cellspacing="0"><TR><TD ALIGN="center">'."\n";

// ==============

while($row = mysql_fetch_array($result)) {
$descriptif_liste = substr($row['DESCRIPTIF_LISTE'],0,299)."...";
echo '<table bgcolor="#FFDB18" border="0" cellpadding="1" width="495">';
echo '<tr>';
echo '<td bgcolor="#FFDB18" border="0" rowspan="3" height="70" width="105"><a href="fiche.php?id='.$row['ID'].'" target="_blank"><img height="70" alt="'.$row['INTITULE'].'" src="images/Photos_B&B/'.$row['ID'].'.jpg" width="105" border="0"></a></td>';
echo '<td bgcolor="#FFDB18" border="0" width="277" height="25" valign="middle"><b><a href="fiche.php?id='.$row['ID'].'" target="_blank"><span class="list1"></span><font color="#FD740F" size="4">'.$row['INTITULE'].'</a></b>&nbsp;<img border="0" src="images/Divers/repas_'.$row['REPAS'].'.gif" alt="Repas sur réservation => '.$row['REPAS'].'" width="18" height="18"></font></td>';
echo '<td bgcolor="#FFDB18" border="0" align="right" width="106">&nbsp;<img border="0" src="images/Divers/'.$row['CLASSIFICATION'].'_epis.bmp" width="'.$row['CLASSIFICATION'].''.$row['CLASSIFICATION'].'" height="22"><span class="list3"><font size="1" face="Verdana">&nbsp;<img border="0" src="images/Divers/'.$row['AFFILIATION'].'_jaune.gif" height="26" alt="Membre - '.$row['AFFILIATION'].'">&nbsp;</font></span></td>';
echo '</tr>';
echo '<tr>';
echo '<td bgcolor="#FFDB18" border="0" colspan="2" width="387"><span class="list2"><font size="1" face="Verdana">'.$descriptif_liste.'</font></span></td>';
echo '</tr>';
echo '<tr>';
echo '<td bgcolor="#FFDB18" border="0" width="277"><span class="list3"><font size="2" face="Verdana">'.$row['CP'].' '.$row['VILLE'].'</font></span></td>';
echo '<td bgcolor="#FFDB18" border="0" align="right" width="106"><span class="list3"><u><font size="1" face="Verdana">'.$row['TEL'].'</font></u></span></td>';
echo '</table>'."\n";
echo '<br>';
}
echo '</TABLE>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);

if($nb_results) {

echo '<TABLE bordercolor="#FFFFFF" border="0" cellpadding="0" width="495"><TR><TD ALIGN="center">'."\n";

while($row = mysql_fetch_array($result_bis)) {
$descriptif_liste = substr($row['DESCRIPTIF_LISTE'],0,164)."...";
echo '<table bgcolor="#FFFFFF" border="0" cellpadding="1" width="495">';
echo '<tr>';
echo '<td><a></span><font color="#FD740F" size="4" face="Verdana">'.$row['INTITULE'].'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" width="495"><span class="list2"><font size="1" face="Verdana">'.$descriptif_liste.'</font></span></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="389"><span class="list3"><font size="2" face="Verdana">'.$row['CP'].' '.$row['VILLE'].'</font></span></td>';
echo '<td align="right" width="106"><span class="list3"><font size="1" face="Verdana">'.$row['TEL'].'</font></span>&nbsp;</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="3" valign="center" align="center" width="495"><img border="0" src="images/test__4.gif" width="495" height="02"></td>';
echo '</tr>';

echo '</table>';
}
echo '</TABLE>'."\n";
}

else echo 'Pas d\'enregistrements dans cette table...';

mysql_free_result($result_bis);

// nombre total de pages
$nb_pages = ceil($nb_results / $nb_results_p_page);
// nombre de pages avant
$avant = $courant > ($nb_avant + 1) ? $nb_avant : $courant - 1;
// nombre de pages après
$apres = $courant <= $nb_pages - $nb_apres ? $nb_apres : $nb_pages - $courant;

// première page
if($premiere && $courant - $avant > 1)
     echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?dpt='.$dpt.'&type='.$type.'&tri='.$tri.'"><font size="1" face="Verdana"><span style="color: #0000FF;">Première</span></font></a>&nbsp;&nbsp;';
    
// page précédente
if($courant > 1)
     echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant - 1) . '&dpt='.$dpt.'&type='.$type.'&tri='.$tri.'"><font size="1" face="Verdana"><span style="color: #0000FF;">Précédente</span></font></a>&nbsp;&nbsp;';

// affichage des numéros de page
for($i = $courant - $avant; $i <= $courant + $apres; $i++)
{
     // page courante
     if($i == $courant)
        echo '<font size="2" face="Verdana"><span style="color: #FF0000;">' . $i . '</span></font>&nbsp;&nbsp;';
     else
        echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . $i . '&dpt='.$dpt.'&type='.$type.'&tri='.$tri.'"><font size="2" face="Verdana"><span style="color: #0000FF;">' . $i . '</span></font></a>&nbsp;&nbsp;';
}

// page suivante
if($courant < $nb_pages)
     echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant + 1) . '&dpt='.$dpt.'&type='.$type.'&tri='.$tri.'"><font size="1" face="Verdana"><span style="color: #0000FF;">Suivante</span></font></a>&nbsp;&nbsp;';
    
if($derniere && $courant + $apres < $nb_pages)
     echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . $nb_pages . '&dpt='.$dpt.'&type='.$type.'&tri='.$tri.'"><font size="1" face="Verdana"><span style="color: #0000FF;">Dernière</span></font></a>&nbsp;&nbsp;';

mysql_close($connexion);

jeudi 12 mai 2005 à 18:03:18 | Re : Bug affichage page par page :-((

Anthomicro

Salut,

$dpt_suiv n'est pas un chiffre (regarde, tu fais un printf avec)

Ensuite remplace tous les $HTTP_POST_VARS et $HTTP_GET_VARS par $_POST et $_GET respectivement.

a ++

    jeudi 12 mai 2005 à 22:36:22 | Re : Bug affichage page par page :-((

    wynelle

    OK pour les $_POST et $_GET, je vais faire les modifs.

    Par contre, je n'ai pas de soucis avec $dpt_suiv dans mes requêtes.

    C'est simplement que la requête $result_bis ne tient pas compte des résultats précédents de $result et qu'elle m'affiche normalement 10 autres résultats : 

    $result = mysql_query("SELECT * FROM bnb_inscrits WHERE CP>='".$dpt."000' AND CP<'".$dpt_suiv."000' AND TYPE!='".$type."' AND PREMIUM='OUI' ORDER BY `PREMIUM` DESC,'".$tri."' ASC,`INTITULE` ASC LIMIT $start, $nb_results_p_page");
    $result_bis = mysql_query("SELECT * FROM bnb_inscrits WHERE CP>='".$dpt."000' AND CP<'".$dpt_suiv."000' AND TYPE!='".$type."' AND PREMIUM!='OUI' ORDER BY `LISTE_FREE` ASC,'".$tri."' ASC,`INTITULE` ASC LIMIT $start, $nb_results_p_page");

    Je voudrais que -par exemple- s'il y a 4 résultats pour la première requête d'affichée, alors la seconde n'en affiche que 6 pour bien avoir 10 affichages sur une même page.

    Merci pour l'aide.

    Je sèche grâve ;-)

    jeudi 12 mai 2005 à 22:52:07 | Re : Bug affichage page par page :-((

    Anthomicro

    Réponse acceptée !
    Hum désolé pour le $dpt_suiv

    Ah ok, bah dans ce cas utilise mysql_num_rows() pour retourner le nombre de lignes de la première requête, ensuite tu fais un $nb_results_p_page-$nbre_lignes et tu auras ton résultat pour mettre dans la seconde requête à la place de $nb_results_p_page

    a +

      jeudi 12 mai 2005 à 23:14:58 | Re : Bug affichage page par page :-((

      wynelle

      Vraiment désolé d'abuser mais je ne trouve pas la soluce.

      Pourrais-tu STP me passer le code à insérer suivant mon précédent code?

      C'est là où je vois que je ne suis vraiment pas un codeur mais un simple "copier-colleur"!!!

      Merci pour ta compréhension.
      jeudi 12 mai 2005 à 23:37:32 | Re : Bug affichage page par page :-((

      Anthomicro

      Bah après ça dépend de la logique de ton code, renseigne-toi surfr.php.net pour la fonction mysql_num_rows() tu pourras modifierensuite ton code tout seul.


        jeudi 12 mai 2005 à 23:40:58 | Re : Bug affichage page par page :-((

        wynelle

        Juste au même moment je viens de trouver la soluce en suivant tes recommandations.

        Super sympa. Merci encore!

        Ps : C'est beau la maîtrise :-)


        Cette discussion est classée dans : page, echo, nb, result, nbsp


        Répondre à ce message

        Sujets en rapport avec ce message

        HELP CODAGE / Affichage différent selon résultats requête [ par wynelle ] Bonjour à tous,Et une galère de plus J'ai une base de données plutôt simple avec les champs classiques (Nom, Prénom, Rue, ...., Premium).J'aimerais lo Affichage différents selon requête SQL [ par wynelle ] Bonjour à tous,Et une galère de plus J'ai une base de données plutôt simple avec les champs classiques (Nom, Prénom, Rue, ...., Premium).J'aimerais lo moteur recherche probléme n'affiche rien [ par speedylol ] bonjour voilà j'ai un moteur de recherche  il n' affiche rien, j'ai besoin d'une petite aide , pour resoudre ce probléme?? voici les code;require_once aide pour affichage galerie [ par speedylol ] bonjour voila mon probléme id_gal est le speudo du membre qui introduit sa galerie et j'aimerais l'afficher une seule fois dans ma liste de galerie . problème d'affichage par page [ par 01cod10 ] Salut à tousLa première page s'affiche correctement mais qd je clique sur 2 rien ne s'affiche <span style= sortie une seule fois un double champs d'une table [ par speedylol ] bonjour voici mon probléme, j ai une liste de membres qui depose leur galerie dans la table galerie avec id_gal qui est egale au membre, j'aimerais l' Problème de pagination [ par goboben ] Bonjour à tous!Voila mon problème, qui n'est pas insurmontable mais bien embetant...J'ai crée un diaporama avec affichage par page (precedente 1 2 3 4 Comment faire pour afficher cette requete sur plusieur pages ? [ par skyman272 ] Bonjour, question pour les pros du PHPLa requette dans le code ci dessous fonctionne mais le resultat devrait s'afficher sur plusieurs pages. 5 résult Problème de pagination [ par speedylol ] Bonjour , j 'ai une petit problème avec ma pagination , depuis que je l'est rajouté mais donnée qui son dans ma base ne son plus extraite et je vois p probleme affichage image [ par zizou94 ] Bonjour à tousVoivi mon deuxieme souci du jour.J'ai un code ou il y a du javascript et du php mélanger. Ce code permet l affichage de l image au passa


        Nos sponsors


        Sondage...

        CalendriCode

        Mai 2012
        LMMJVSD
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   

        Consulter la suite du CalendriCode

        A découvrir



         
        Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
        CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
        CodeS-SourceS.com© est une marque déposée tous droits réservés

        Google Coop CodeS-SourceS Google Coop CodeS-SourceS
        Temps d'éxécution de la page : 4,290 sec (3)

        Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales