Page 1 sur 3

Limitation requete + affichage page par page ???

Posté : 04 sept. 2006, 14:33
par zizou59
Bonjour !!!

je suis actuellement à cours de solution pour faire un limite de 5 avec un affichage page par page tous simple avec cette requette , jvous en pris aidez moi :cry:

si vous avez une solution de départ çà m'aiderai bocoup...

car avec une seule requete je m'ensort bien mais 2 conditions + 1 else là je bloque!!!

merci d'avance pour votre aide !!!

<? 

//recup variable
mysql_select_db("$database"); 
$table="gst_match"; 
$equipe=$_POST['equipe']; 

$nb_enr0 = mysql_query("Select count(numero) as nbe from $table where equipe='$equipe'"); 
$do = mysql_fetch_array($nb_enr0); 
$nm_t = $do['nbe'];  
// si le nombre de post est superieur à 0
if ($nm_t>0) 
{ 
//equipe 1
$detail_equipe = mysql_query("SELECT * FROM $table where equipe='$equipe'"); 
while ($rest = mysql_fetch_array($detail_equipe) ) 
{  
$n_tour=$rest['n_tour']; 
$n_match=$rest['n_match']; 

//equipe 2
$detail_equipe2 = mysql_query("SELECT * FROM $table where n_tour='$n_tour' AND n_match!=$n_match"); 
while ($rest2 = mysql_fetch_array($detail_equipe2) ) 
{  



?> 
                      <table width="90%" height="102" border="0" cellpadding="0" cellspacing="0"> 
                        <tr> 
                          <td width="9" height="19"><img src="images/gh.gif" width="9" height="19" /></td> 
                          <td colspan="5" background="images/h.gif">&nbsp;</td> 
                          <td width="10"><img src="images/dh.gif" width="9" height="19" /></td> 
                        </tr> 
                        <tr> 
                          <td rowspan="2" background="images/g.gif"><img src="images/g.gif" width="9" height="19" /></td> 
                          <td width="108" align="center"><strong><?=$rest['equipe'];?></strong></td> 
                          <td width="100" align="center"><strong><?=$rest['but_p'];?> </strong></td> 
                          <td width="101" height="64" align="center"><img src="images/vs.gif" width="64" height="64"></td> 
                          <td width="90" align="center"><strong><?=$rest['but_c'];?></strong></td> 
                          <td width="134" align="center"><strong><?=$rest2['equipe'];?> </strong></td> 
                          <td rowspan="2" background="images/d.gif"><img src="images/d.gif" width="9" height="19" /></td> 
                        </tr> 
                        <tr></tr> 
                        <tr> 
                          <td height="19"><img src="images/gb.gif" width="9" height="19" /></td> 
                          <td colspan="5" align="center" background="images/b.gif"><strong><font color="#FFFFFF" size="2"><font color="#000000">Match Jou&eacute; le  </font></font> 
                            <? 
$dateS= explode(" ",$rest['date']); 
$dateJ=explode("-",$dateS[0]); 

echo $dateJ[2]."-".$dateJ[1]."-".$dateJ[0] ; 
                             
                             
                            ?> 
                            <font color="#FFFFFF" size="2"><font color="#000000">&agrave; </font></font><?$heure= explode(" ",$rest2['heure']); 
$heureh=explode(":",$heure[0]); 
echo $heureh[0].":".$heureh[1] ;?></strong></td> 
                          <td><img src="images/db.gif" width="9" height="19" /></td> 
                        </tr> 
                    </table><br> 
                      <? } 
                      
                      }
//si aucun résultat
                      }else {echo "<br><center><img src='images/alerte.png' align='middle'> &nbsp;<font color='red'><b>----- Aucuns Matchs Effectués à ce Jour !!! -----</b></font> &nbsp;<img src='images/alerte.png' align='middle'></center>";} 
                       
                       
                      ?>


Posté : 04 sept. 2006, 14:39
par zeus
Est-ce que cet article qui se trouve dans la FAQ peut t'aider ?
http://www.phpfrance.com/forums/voir_sujet-8874.php

C'est fou ce qu'on trouve dans cette FAQ ;)

Posté : 04 sept. 2006, 14:50
par zizou59
merci çà peut peut-etre m'aider je vais tester je te tiens au courant!!!

:arrow: comment peut-on négligr la faq :wink:

Posté : 04 sept. 2006, 15:05
par Truc
comment peut-on négligr la faq :wink:
C'est effetivement une question à se poser !! :twisted:
Ou même une recherche avant de poster :roll:

Posté : 04 sept. 2006, 15:14
par zizou59
donc j'ai suivi le tuto de la section faq que tu m'as filé mais j'ai un petit probleme au nivo des liens avec les page!!! et la requete avec le limite:


tu pourra constater ici:

:arrow: dans le menu gauche choisi la 1ère equipe dans le select

http://www.asptt-dunkerque.com

<?  
mysql_select_db("$database");
$table="gst_match";
$equipe=$_POST['equipe'];
/* Paramètres de pagination */ 
$nb_nouv_par_page = 1;
$url = "./equipe_detail.php?page="; 

/* On détermine quelle est la page qui est actuellement affichée */ 
$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 1; 
$page_affichee    = ($page_en_cours + 1);
/* Requête pour compter les nouvelles présentes dans notre base de données */ 
$sql_nb = "Select count(numero) from $table where equipe='$equipe'"; 

/* Exécution de la requête et récupération du résultat */ 
$resultat_1 = mysql_query($sql_nb); 
$nb_nouvelles = mysql_result($resultat_1 ,0); 

/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */ 
$nb_pages = ceil($nb_nouvelles / $nb_nouv_par_page); 

/**  
Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation. 
Première chose à vérifier : avons-nous plusieurs pages, et au moins une ? 
 */ 
if($nb_pages > 0) 
{ 
    /* On définit une variable qui contiendra les données de navigation */ 
    $barre_nav = ""; 
    /* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */ 
    if($nb_pages > 1) 
    { 
   /*Nous avons plusieurs pages: nous allons afficher successivement les liens vers 
        les pages précédentes s'il y en a, la page en cours et les liens vers les pages 
        suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables 
        sauf pour la page en cours dont nous mettrons le chiffre en gras 
         */ 
        if($page_en_cours > 0) 
        { 
            for($i = 0; $i < $page_en_cours; $i++) 
            { 
                $p = $i + 1; 
                $barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | "; 
            } 
        } 
        /** 
        On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une  
        page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente 
         */ 
        $barre_nav .= "<strong>". $page_affichee ."</strong>"; 
        /* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */ 
        if(($page_affichee) < $nb_pages) 
        { 
            /* Il reste encore d'autres pages à afficher */ 
            $nb_suivantes = $nb_pages - ($page_affichee); 
            for($j = ($page_affichee); $j < $nb_pages; $j++) 
            { 
                $p = $j + 1; 
                $barre_nav .= " | <a href=\"". $url . $j ."\" title=\"page ". $p ."\">". $p ."</a>"; 
            } 
        } 
         
        /* On peut définir en plus la situation dans une autre variable à afficher ailleurs */ 
        $page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages."; 
    } 
    else 
    { 
        /* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */ 
        $barre_nav .= "page 1/1"; 
    } 
    /** 
    On peut maintenant afficher notre page. On va commencer par récupérer les informations 
    On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT. 
     */ 

$debut = $page_en_cours * $nb_nouv_par_page; 
?> 
<p align="center"><?php echo($page_affichee); ?></p> 
<?php 
    $sql_n = "SELECT * FROM $table where equipe='$equipe' LIMIT ". $debut .", ". $nb_nouv_par_page; 
    $detail_equipe = mysql_query($sql_n);
	while($rest = mysql_fetch_array($detail_equipe)) 
    { 
$n_tour=$rest['n_tour'];
$n_match=$rest['n_match'];

    $sql_n1 = "SELECT * FROM $table where n_tour='$n_tour' AND n_match!=$n_match "; 
    $detail_equipe2 = mysql_query($sql_n1);
    while($rest2 = mysql_fetch_array($detail_equipe2)) 
    { 

?> 
                      <table width="90%" height="102" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                          <td width="9" height="19"><img src="images/gh.gif" width="9" height="19" /></td>
                          <td colspan="5" background="images/h.gif">&nbsp;</td>
                          <td width="10"><img src="images/dh.gif" width="9" height="19" /></td>
                        </tr>
                        <tr>
                          <td rowspan="2" background="images/g.gif"><img src="images/g.gif" width="9" height="19" /></td>
                          <td width="108" align="center"><strong><?=$rest['equipe'];?></strong></td>
                          <td width="100" align="center"><strong><?=$rest['but_p'];?> </strong></td>
                          <td width="101" height="64" align="center"><img src="images/vs.gif" width="64" height="64"></td>
                          <td width="90" align="center"><strong><?=$rest['but_c'];?></strong></td>
                          <td width="134" align="center"><strong><?=$rest2['equipe'];?> </strong></td>
                          <td rowspan="2" background="images/d.gif"><img src="images/d.gif" width="9" height="19" /></td>
                        </tr>
                        <tr></tr>
                        <tr>
                          <td height="19"><img src="images/gb.gif" width="9" height="19" /></td>
                          <td colspan="5" align="center" background="images/b.gif"><strong><font color="#FFFFFF" size="2"><font color="#000000">Match Jou&eacute; le  </font></font>
                            <?
$dateS= explode(" ",$rest['date']);
$dateJ=explode("-",$dateS[0]);

echo $dateJ[2]."-".$dateJ[1]."-".$dateJ[0] ;
							
							
							?>
                            <font color="#FFFFFF" size="2"><font color="#000000">&agrave; </font></font><?$heure= explode(" ",$rest2['heure']);
$heureh=explode(":",$heure[0]);
echo $heureh[0].":".$heureh[1] ;?></strong></td>
                          <td><img src="images/db.gif" width="9" height="19" /></td>
                        </tr>
                    </table><br>
                      <?php 
    }} 
    /* on libère la mémoire */ 
    mysql_free_result($resultat_1); 
    mysql_free_result($detail_equipe);
    
    /* On affiche maintenant la barre de navigation */ 
?> 
<p align="center"><?php echo($barre_nav); ?></p> 
<?php 

} else { echo "<br><center><img src='images/alerte.png' align='middle'> &nbsp;<font color='red'><b>----- Aucuns Matchs Effectués à ce Jour !!! -----</b></font> &nbsp;<img src='images/alerte.png' align='middle'></center>";}
					  
					  
					  ?>
As-tu une idée de ce que çà pourrai etre?[/url]

Posté : 05 sept. 2006, 14:11
par zeus
Je ne comprend pas (encore) pourquoi est-ce que c'est la page 2 qui apparait en 1er mais, en tout cas, je n'ai pas trouvé la clause LIMIT dans la requete qui sélectionne les résultats à afficher ;)

Si tu te demandes sur quelle requete il faut mettre cette clause, c'est sur celle qui retourne les lignes que tu affiches ;)

Posté : 05 sept. 2006, 14:33
par zizou59
oups désolé rectifié....

javais oublier de te le rajouter dans la balise

voilà maintenant tu peu constater le résultat :wink:

Posté : 05 sept. 2006, 14:58
par zizou59
:arrow: désolé pour le Mp :oops:
:arrow: mais je n'ai en aucun cas voulu te persecuter :oops:
:arrow: c'été juste au cas ou tu étais encore sur le forum :oops:

:!: :!: :!: 1000 ESCUSES :!: :!: :!:

Posté : 05 sept. 2006, 15:03
par zeus
Si tu recommences pas, pas de soucis ;)

Sinon, ce qui me choque, c'est que ta page 1 affiche la 2nd page :-k

Essaye de creuser de ce coté ;)

Posté : 05 sept. 2006, 15:08
par zizou59
oui c'est vrai peu etre parce que j'ai modifier la variable d'affichage de page qui étais par défault à 0 à 1 mais bon a mon avis je pense pas... :idea:

sinon aussi quand je clic sur le lien suivant c'est le else qui est pris en compte et précédent aussi... :idea:

sinon au pire jvais essayer de modifier ma requette (de la simplifier un peu +++ :!:

@+++

Posté : 05 sept. 2006, 15:29
par graphistnet
oui c'est vrai peu etre parce que j'ai modifier la variable d'affichage de page qui étais par défault à 0 à 1 mais bon a mon avis je pense pas... :idea:
Si si moi je pense que ca vienne de là :), regarde bien ton code et tu trouvera pourquoi.

Posté : 05 sept. 2006, 18:00
par zizou59
effectivement j'ai remis à 0 c'est mieux mais toujoursce prob avec le else qui est pris en compte quand je clic sur la page 2 ou 3 :?:

Posté : 05 sept. 2006, 18:21
par graphistnet
Tente de debugger en affichant tes requêtes $sql_n et $sql_nl

Posté : 05 sept. 2006, 19:40
par zizou59
ah bon c'est à dire?

peus tu me donner une idée stp!!!!

Posté : 05 sept. 2006, 19:57
par graphistnet
Pour voir si tes requêtes agissent comme tu le souhaites tu les affiches et tu peux voir si les paramêtres donnés passent correctement.
echo "requete 1 : ".$sql_n."<br/>requete 2 : ".$sql_nl;

Mets ca juste avant le while