IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] PB liens apres affichage page par page


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut [Tableaux] PB liens apres affichage page par page
    Bonjour a tous,

    Voila je ne suis pas un expert en programmation PHP
    et je rencontre actuellement un soucis avec un script
    que j'ai écris
    ce script a pour fonction de faire un affichage page par page dans un tableau HTML d'une requete SQL
    et il affiche des liens de 1 à10 avec << et>> pr accéder aux 10 suivants et précédents

    jusque la je m'en suis sorti
    mais j'ai essayer de rajouter une fonctiond e tri pr l'utilisateur
    afin qu'il puisse chercher dans ma table MySQL ce qu'il cherche suivant la valeur d'un champ

    ce tri s'effectue bien et les liens s'affichent correctement mais lorsque je clique sur ces liens
    par exemple pr avoir la page 2(triée) il m'affcihe la page2(non triée) celle avec une requete de base sans tri...

    est ce que quelqu'un pourrait m'aider sur ce sujet?
    merci d'avance

    je peux mettre mon code a disposition bien sur

    je suis ouverta toute proposition MERCI

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    dans tes liens "précédent" et "suivant", penses-tu bien à spécifier en paramètre l'ordre de tri ? il semble qu'au moment ou tu charge la page suivante, il ne prenne pas en compte ce paramètre.

    M'enfin, avec un bout de code, ce serait plus facile
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre averti Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    effectivement un peu de code pourrait aider...
    moi je verrais probablement des parametres a ajouter a ton lien vers la page 2.
    mais pourquoi tu cours?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
     
    <?php require_once('connect_mysql.php');
    	  require_once('cod_para.php');
     
    if(!isset($_GET['pg'])){
        $pg = 1;
    }else{
        $pg = $_GET['pg'];
    }
    //on verifie si la variable qui doit etre un numero de page est bien un chiffre,
    //pour plus de sécurité
    if(!is_numeric($pg)){
        $pg = 1;
    }
    //connexion mysql
    mysql_select_db($database, $dbconnect);
    //c'est le nb d'enregistrements à afficher par page:
    $enreg_par_pg = 25;
    //fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente:
    function pgs($enreg_par_pg, $pg, $dbconnect)
    {
    //c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
    if(isset($_POST["bouton"])&& $_POST["bouton"]=="TRIER")
    {
    $sdate = $_POST['sdate']." 00:00:00";
    $edate = $_POST['edate']." 00:00:00";
    	if(isset($_POST["sev"])&& is_numeric($_POST["sev"]))
    	{
    		$requete = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']);
    		if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    		$requete = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']);
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <='$edate'");
    	}
    	else if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    	{
    		$requete = sprintf("SELECT * FROM shalmlis WHERE NBT=".$_POST['nbt']);
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <='$edate'");
    	}
    	else if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    	{
    		$requete = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM>='$sdate' AND TIM<='$edate'");
    	}
    	else  {
    	$requete = sprintf("SELECT * FROM shalmlis ");
    	}
    }else//affichage normal : pas de tri
    {
    $requete = sprintf("SELECT * FROM shalmlis");
    }
    	$res = mysql_query($requete, $dbconnect) or die(mysql_error());
        mysql_close($dbconnect);
    	$nb_enreg = mysql_num_rows($res);
        //on calcule le nb de pages
        $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur
     
    //definition du minimum et du maximum
    	$min= $pg-(($pg-1)%10);
     
       if($nb_pg_rounded<$min+9) {
            $max= $nb_pg_rounded;
        } else {
            $max= $min+9;
        }
     
        // si on est pas au début, on est au moins en 11, on peut donc reculer de 10
        if($min!=1) {
            echo " <a href='?page=29&pg=".($pg-10)."'>&lt;&lt;</a>\n";
        }
        $i= $min;
        do{
            //si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
            if($i != $pg){
                //...on affiche un lien vers cette page
                echo " <a href='?page=29&pg=$i'>$i</a>\n";
            }else{
                //...sinon on affiche simplement le n°  de la page actuelle
                echo " $i ";
            }
        $i++;
        //on recommence tant que $i n'atteint pas le numero de la derniere page
        }while($i <= $max);
        // si le maximum affiché n'est pas la fin
        if($max<$nb_pg_rounded) {
            // si la page+10 existe on avance de 10
            // sinon, on se positionne sur la fin
            if($pg+9<$nb_pg_rounded) {
                echo " <a href='?page=29&pg=".($pg+10)."'>&gt;&gt;</a>\n";
            } else {
                echo " <a href='?page=29&pg=".($nb_pg_rounded)."'>&gt;&gt;</a>\n";
            }
        }
    }
     
    //ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
    $limit = $enreg_par_pg*$pg-$enreg_par_pg;
     
    //c'est la requete qui selectione $enreg_par_pg resultats
    if(isset($_POST["bouton"])&& $_POST["bouton"]=="TRIER")
    {
    $sdate = $_POST['sdate']." 00:00:00";
    $edate = $_POST['edate']." 00:00:00";
    	if(isset($_POST["sev"])&& is_numeric($_POST["sev"]))
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <'$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");	
    	}
    	else if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    	}
    	else if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM>='$sdate' AND TIM<='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    	}
    	else {?><script type="text/javascript">
    	alert("PB: Veuillez au moins remplir un champ ou remplir la date de depart ET la date de fin !");
    	</script>
    <?php
    	$requete2 = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    	}
    }else//affichage normal : pas de tri
    {
    $requete2 = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }
     
    $reponse = mysql_query($requete2, $dbconnect) or die(mysql_error());
     
    $i=0;
    $j=1;
    $ind=0;
    while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau
    	{
    	//alternance des couleurs des lignes
    	if($i%2==0){
    		$couleur="#E6E6E6";
    		$couleur2="#A9FF8F";}
        else {
    		$couleur="#C0C0C0";
            $couleur2="#A9FF8F";}
        //on affiche chaque colonne dans la table avec une couleur differente pour chaque ligne
    	echo '<tr bgcolor="',$couleur,'" onclick="changecolor(this);" onmouseover="if (!clic) this.style.backgroundColor=\'',
    		$couleur2,'\'" onmouseout="if (!clic) this.style.backgroundColor=\'',$couleur,'\'">	
    			<TD id="id'.$j.'"> '.$retour['TIM'].'</TD>';
    			$j++;		
    	echo '  <TD id="id'.$j.'"> '.$retour['SEV'].' </TD>';
    			$j++;		
    	echo '  <TD id="id'.$j.'" style="text-align: left"> '.$retour['MSG'].' </TD>';
    			$j++;		
    	echo '  <TD id="id'.$j.'"> '.$retour['NBT'].' </TD>';
    			$j++;	
    	echo '  <TD id="id'.$j.'"> '.$retour['NBE'].' </TD>';
    			$j++;	
    	echo '  </TR>';	
    	$i=$i+1;
    	}
    // Libération des ressources prises par le fetch_array
    mysql_free_result($reponse);
    //on appele la fonction précédament créée pour afficher les liens vers les autres pages
    pgs($enreg_par_pg, $pg, $dbconnect);
    ?>
    voici le code qui est surement pas du tout optimisé
    mais bon ... comme je l'ai dit je suis ouvert aux suggestions

    merci de vs penchez dessus

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    je repost juste la partie avec les liens
    car vs avez l'air de dire que le probleme vient de la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    	$res = mysql_query($requete, $dbconnect) or die(mysql_error());
        mysql_close($dbconnect);
    	$nb_enreg = mysql_num_rows($res);
        //on calcule le nb de pages
        $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur
     
    //definition du minimum et du maximum
    	$min= $pg-(($pg-1)%10);
     
       if($nb_pg_rounded<$min+9) {
            $max= $nb_pg_rounded;
        } else {
            $max= $min+9;
        }
     
        // si on est pas au début, on est au moins en 11, on peut donc reculer de 10
        if($min!=1) {
            echo " <a href='?page=29&pg=".($pg-10)."'>&lt;&lt;</a>\n";
        }
        $i= $min;
        do{
            //si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
            if($i != $pg){
                //...on affiche un lien vers cette page
                echo " <a href='?page=29&pg=$i'>$i</a>\n";
            }else{
                //...sinon on affiche simplement le n°  de la page actuelle
                echo " $i ";
            }
        $i++;
        //on recommence tant que $i n'atteint pas le numero de la derniere page
        }while($i <= $max);
        // si le maximum affiché n'est pas la fin
        if($max<$nb_pg_rounded) {
            // si la page+10 existe on avance de 10
            // sinon, on se positionne sur la fin
            if($pg+9<$nb_pg_rounded) {
                echo " <a href='?page=29&pg=".($pg+10)."'>&gt;&gt;</a>\n";
            } else {
                echo " <a href='?page=29&pg=".($nb_pg_rounded)."'>&gt;&gt;</a>\n";
            }
        }

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    essaie ce genre de chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href='?page=29&pg=$i&tri=$ordre_tri'>$i</a>";
    et dans ton code, tu récupère l'ordre de tri, que tu inclus dans ta requête
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    heu qd tu dis dans ton code tu récupéres l'ordre que tu inclus ds la requete...

    je vois pas bien ou je dois mettre ca ?

    t'as pas un exemple SVP désolé

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    enfin ce que je veux dire $ordre_tri ca correspond a quoi exactement?

  9. #9
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    perso je l'optimiserai ainsi :

    <?php require_once('connect_mysql.php');
    require_once('cod_para.php');

    $pg = (isset($_GET['pg'])&& is_numeric($pg))? $_GET['pg'] : 1;
    //connexion mysql
    mysql_select_db($database, $dbconnect);
    //c'est le nb d'enregistrements à afficher par page:
    $enreg_par_pg = 25;
    //fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente:
    function pgs($enreg_par_pg, $pg, $dbconnect)
    {
    //c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
    if(isset($_POST["bouton"])&& $_POST["bouton"]=="TRIER")
    {
    $sdate = $_POST['sdate']." 00:00:00";
    $edate = $_POST['edate']." 00:00:00";
    $requete = sprintf("SELECT * FROM shalmlis ");
    $where = "";
    $and = "";
    if(isset($_POST["sev"])&& is_numeric($_POST["sev"])) {
    $where = sprintf(" WHERE SEV=".$_POST['sev']);
    $and = " and ";
    }
    if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"])) {
    $where .= sprintf( $and." NBT=".$_POST['nbt']);
    $and = " and ";
    }
    if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    $where .= sprintf($and." AND TIM >='$sdate' AND TIM <='$edate'");

    $res = mysql_query($requete, $dbconnect) or die(mysql_error());
    mysql_close($dbconnect);
    $nb_enreg = mysql_num_rows($res);
    //on calcule le nb de pages
    $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur

    //definition du minimum et du maximum
    $min= $pg-(($pg-1)%10);
    $max= $min+9;
    if($nb_pg_rounded<$min+9) $max= $nb_pg_rounded;

    // si on est pas au début, on est au moins en 11, on peut donc reculer de 10
    if($min!=1) {
    echo " <a href='?page=29&pg=".($pg-10)."'>&lt;&lt;</a>\n";
    }
    $i= $min;
    do{
    //si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
    if($i != $pg){
    //...on affiche un lien vers cette page
    echo " <a href='?page=29&pg=$i'>$i</a>\n";
    }else{
    //...sinon on affiche simplement le n° de la page actuelle
    echo " $i ";
    }

    //on recommence tant que $i n'atteint pas le numero de la derniere page
    }while($i++ <= $max);
    // si le maximum affiché n'est pas la fin
    if($max<$nb_pg_rounded) {
    // si la page+10 existe on avance de 10
    // sinon, on se positionne sur la fin
    if($pg+9<$nb_pg_rounded) {
    echo " <a href='?page=29&pg=".($pg+10)."'>&gt;&gt;</a>\n";
    } else {
    echo " <a href='?page=29&pg=".($nb_pg_rounded)."'>&gt;&gt;</a>\n";
    }
    }
    }

    //ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
    $limit = $enreg_par_pg*$pg-$enreg_par_pg;

    //c'est la requete qui selectione $enreg_par_pg resultats
    if(isset($_POST["bouton"])&& $_POST["bouton"]=="TRIER")
    {
    $sdate = $_POST['sdate']." 00:00:00";
    $edate = $_POST['edate']." 00:00:00";
    if(isset($_POST["sev"])&& is_numeric($_POST["sev"]))
    {
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <'$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }
    else if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    {
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }
    else if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    {
    $requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM>='$sdate' AND TIM<='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }
    else {?><script type="text/javascript">
    alert("PB: Veuillez au moins remplir un champ ou remplir la date de depart ET la date de fin !");
    </script>
    <?php
    $requete2 = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }
    }else//affichage normal : pas de tri
    {
    $requete2 = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    }

    $reponse = mysql_query($requete2, $dbconnect) or die(mysql_error());

    $i=0;
    $j=1;
    $ind=0;
    while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau
    {
    //alternance des couleurs des lignes
    $couleur="#C0C0C0";
    $couleur2="#A9FF8F";
    if($i++%2==0) $couleur="#E6E6E6";
    //on affiche chaque colonne dans la table avec une couleur differente pour chaque ligne
    echo '<tr bgcolor="',$couleur,'" onclick="changecolor(this);" onmouseover="if (!clic) this.style.backgroundColor=\'',
    $couleur2,'\'" onmouseout="if (!clic) this.style.backgroundColor=\'',$couleur,'\'">
    <TD id="id'.$j++.'"> '.$retour['TIM'].'</TD>';
    echo ' <TD id="id'.$j++.'"> '.$retour['SEV'].' </TD>';
    echo ' <TD id="id'.$j++.'" style="text-align: left"> '.$retour['MSG'].' </TD>';
    echo ' <TD id="id'.$j++.'"> '.$retour['NBT'].' </TD>';
    echo ' <TD id="id'.$j++.'"> '.$retour['NBE'].' </TD>';
    echo ' </TR>';
    }
    // Libération des ressources prises par le fetch_array
    mysql_free_result($reponse);
    //on appele la fonction précédament créée pour afficher les liens vers les autres pages
    pgs($enreg_par_pg, $pg, $dbconnect);
    ?>
    j'ai pas testé c'est pas super optimisé...
    mais il y a pe des idées a reprendre.
    Un code clair aide souvent a retrouver ses erreurs
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    effectivement pr les requete c'est surement mieux
    merci a toi
    je l'optimiserais de cette facon qd j'aurais résolu mon erreur

  11. #11
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par x2thez
    enfin ce que je veux dire $ordre_tri ca correspond a quoi exactement?
    à l'ordre du tri défini par l'utilisateur. Cette valeur, il faut la transmettre depage en page, sinon, forcément, tu va perdre l'ordre de tri...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    ok mais alors $ordre_tri c'est la meme chose que $requete?non?

  13. #13
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    non, $requete, c'est ta chaine SQL

    $ordre_tri, ca va être un paramêtre de cette chaine :

    ORDER BY $ordre_tri
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    dans mon code les requete ont toutes le meme ordre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete2 = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    donc la si je mets $ordre_tri a la palce de TIM DESC.....
    il ne variera pas ? enfin je comprends pas ce qui va faire varier $ordre_tri?

    désolé de faire mon boulet

  15. #15
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par x2thez
    désolé de faire mon boulet


    pas de soucis, tu as l'air d'avoir envie d'apprendre. Effectivement, l'idée est de mettre $ordre_tri a la palce de TIM .

    $ordre_tri, ca va être une variable (avec comme valeur par défaut TIM) que tu mettra à jour en fonction du choix de l'ordre de tri fait par l'utilisateur.
    Et après, cette variable, il faudra la transmettre de page en page, afin de conserver les choix de l'utilisateur.

    Tu peux également décider de passer cette variable en variable d'environnement... Par exemple, en début de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (!isset($_ENV['ordre_tri'])) {		// Si la variable $_ENV['ordre_tri'] n'est pas définie
    	$_ENV['ordre_tri'] = "TIM";			// Valeur par défaut
    } else {
    	if (isset($_GET['modif_ordre_tri'])) {					// Si on a passé par la méthode GET une variable appelée modif_ordre_tri (l'utilisateur a demandé à modifier l'ordre de tri)
    		$_ENV['ordre_tri'] = $_GET['modif_ordre_tri'];		// on affecte cette valeur à notre variable d'environnement
    	}
    }
    $requete2 = sprintf("SELECT * FROM shalmlis ORDER BY ".$_ENV['ordre_tri']." DESC LIMIT $limit, $enreg_par_pg ");
    L'avantage de lma variable d'environnement, c'est que tu n'as plus à gérer sa transmition, sauf au moment où l'utilisateur change d'ordre de tri
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    ok mais moi justement suivant le tri choisi par l'utilisateur j'avais décider de faire varier la requete $requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if(isset($_POST["sev"])&& is_numeric($_POST["sev"]))
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <'$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");	
    	}
    	else if(isset($_POST["nbt"])&& is_numeric($_POST["nbt"]))
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE NBT=".$_POST['nbt']." ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    		if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM >='$sdate' AND TIM <='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    	}
    	else if(isset($_POST["sdate"])&&isset($_POST["edate"])&& $_POST["sdate"]!="date start" && $_POST["edate"]!="date end")
    	{
    		$requete2 = sprintf("SELECT * FROM shalmlis WHERE SEV=".$_POST['sev']." AND NBT=".$_POST['nbt']." AND TIM>='$sdate' AND TIM<='$edate' ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");
    	}
    en fait l'ordre avec TIM DESC doit toujours etre le meme, ce qui varie c'est apres le WHERE...
    heu je suis perdu la

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 32
    Points
    32
    Par défaut
    bon je t'avoue que je suis un peu désepéré la
    de bloquer sur ce petit truc
    qd ca veut pas rentrer des fois ca veut vraiment pas...

    mais faut que je trouve qd meme apres je pourrais passer a de nouveaux pb


Discussions similaires

  1. Affichage ipconfig /displaydns page par page? windows7
    Par destructive.flame dans le forum Windows
    Réponses: 1
    Dernier message: 28/02/2014, 08h00
  2. [MySQL] Affichage du résultat page par page (pagination)
    Par marcito dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/07/2007, 14h53
  3. [SQL] Script d'affichage page par page
    Par x2thez dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/05/2006, 15h48
  4. [MySQL] Affichage page par page et requêtes du type $sql .=
    Par carelha dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/04/2006, 17h12
  5. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo