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

PHP & Base de données Discussion :

Systeme de "Page" automatique [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Par défaut Systeme de "Page" automatique
    Bonjour a tous, voila je réalise un systeme de blog et j'affiche donc des articles les uns a la suite des autres.
    Le problème c'est qu'au bout d'un moment, bah ça fait une floppée d'article a la suite et ça fait pas super donc j'aimerais bien faire un systeme de page, qui tous les 10 articles ferait une nouvelle page le truc c'est que je vois pas du tout comment faire :s

    Voici le code :
    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
    <?php
     
    session_start();//démarage de la Sessin 
    include("connect.php");
     
    $ID_Article=$_GET['id_article'];//on récupère l'ID de l'article 
     
    if ( isset($_SESSION['Pseudo'])){//on vérifie si l'utilisateur est bien loggué et si c'est le cas on récupère le pseudo et le statut 
    	$Pseudo=$_SESSION['Pseudo'];
    	//puis on récupère les infos sur le member et plus précisement son blog 
    	$selection="SELECT * FROM blog WHERE Pseudo_Utilisateur = \"".$Pseudo."\"";
    	$Res=mysql_query($selection) or die ("error");
    	while($Lien = mysql_fetch_object($Res)) {
    	$Blog_Ut = $Lien->ID_Blog;//on récupère son ID pour faire un lien direct vers le blog de l'utilisateur
    	}
    }
     
    $resultat="SELECT * FROM article WHERE ID_article=\"".$ID_Article."\" "; //requete pour récuperer l'article selon son ID 
    $liste=mysql_query($resultat) or die ("error");
    $requete="SELECT * FROM commentaire WHERE ID_article=\"".$ID_Article."\" "; //requete pour récupérer les commentaires liés a l'article chargé 
    $list=mysql_query($requete) or die ("error");
     
    While($article=mysql_fetch_object($liste)){ //on récupère les différents composants de l'article 
    	$Titre_Article=$article->Titre_Article; //son titre
    	$Date_Article=$article->Date_Article; //la date a laquelle il a été écrit 
    	$Intro_Article=$article->Intro_Article; //son introduction 
    	$Contenu_Article=$article->Contenu_Article; //son contenu 
    }
    ?>
     
    <?php if ( isset($_SESSION['Pseudo'])){ //si la session en cours contient un pseudo (donc est active), on affiche les liens vers le blog de l'utilisateur et aussi la possibilité de voir la liste des membres ?>
    <a href='afficher_utilisateur.php'>Voir la liste des membres</a>
    <a href='blog_utilisateur.php?varnomdublog=<?php echo $Blog_Ut ?>'>Mon Blog</a>
     
    <?php } else { //si jamais il n'y a pas de session ouverte alors on propose a l'utilisateur de se connecter ou de s'enregistrer?>
    <a href='login.html'>Connectez Vous</a>
    <a href='ajout_utilisateur.php'>Enregistrez Vous</a>
    <?php } ?>
    <a href='afficher_blog.php'>retour page d'accueil</a><br><br><br>
     
     
    <?php echo $Titre_Article; //affichage du titre de l'article 
    echo "   écrit le    ";
    echo $Date_Article;//affichage de la date de l'article?>
    <br>
    <?php echo $Intro_Article;//chargement de l'intro?><br>
    <?php echo $Contenu_Article;//chargement du contenu ?><br><br><br>
    <?php 
    if ( isset($_SESSION['Pseudo'])){
    $Type_Utilisateur=$_SESSION['Type_Utilisateur'];//on récupère le statut de l'utilisateur contenu dans la session
     
    if($Type_Utilisateur==3 || $Type_Utilisateur==2){ //si l'utilisateur est admin ou modétalors il peut supprimer des articles ou alors les "sélectionner pour qu'ils apparaissent en premiere page ?>
    	<FORM Action="supprimer_article.php" method="post">
    		<input type="hidden" value ="<?php echo $ID_Article; ?>" name="id_article"> 
    		<input type="Submit" Value="supprimer article">
    	</FORM>
    	<FORM Action="selection.php" method="post">
    		<input type="hidden" value ="<?php echo $ID_Article; ?>" name="id_article"> 
    		<input type="Submit" Value="Marquer Article">
    	</FORM>
    <?php }}?><br><br><br>
    Commentaires : 
    <br>
    <?php
    While($commentaire=mysql_fetch_object($list)){//on récupère les différents éléments qui composent les commentaires liés 
    	$Posteur=$commentaire->Posteur; //on reprend le pseudo du posteur 
    	$Contenu_Commentaire=$commentaire->Contenu_Commentaire; //le contenu du commentaire 
    	$ID_Commentaire=$commentaire->ID_Commentaire; //son ID 
    ?>
    <?php echo $Posteur;?><br>
    <?php echo $Contenu_Commentaire;?><br>
     
    <?php 
    if ( isset($_SESSION['Pseudo'])){
    $Type_Utilisateur=$_SESSION['Type_Utilisateur'];//on récupère le statut de l'utilisateur contenu dans la session
    if($Type_Utilisateur==3 || $Type_Utilisateur==2){?>
    <FORM Action="supprimer_commentaire.php" method="post">
    		<input type="hidden" value ="<?php echo $ID_Commentaire; ?>" name="id_commentaire"> 
    		<input type="Submit" Value="supprimer commentaire">
    </FORM>
    <?php }}} ?><br><br>
     
    <?php 
    if ( isset($_SESSION['Pseudo'])){
    $Type_Utilisateur=$_SESSION['Type_Utilisateur'];//on récupère le statut de l'utilisateur contenu dans la session
    if($Type_Utilisateur==1 || $Type_Utilisateur==2 || $Type_Utilisateur==3){
    include("ajout_commentaire.html");
    }}?>
    Voila j'espere que vous verrez une solution ou une idée, merci d'avance

  2. #2
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Utilise la commande LIMIT de MySQL s'est exactement ce qu'il te faut man
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selection="SELECT * FROM blog WHERE Pseudo_Utilisateur = \"".$Pseudo."\" LIMIT ".$Deb.",".$Fin;
    Evidement tu l'auras compris $Deb et $Fin doivent être gérer par bouton <<précédant>>et<<suivant>>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Par défaut
    Merci pour ta réponse ^^

    Quitte a passer pour un boulet comment on fait pour gérer avec les boutons precedent et suivant ?

  4. #4
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    Salut.
    Voici un exemple de code que j'utilise et qui fonctionne très bien :
    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
     
         if(!isset($_GET['pg']))
         {
             $pg = 1;
         }
         else
         {
             $pg = $_GET['pg'];
         }
     
         //on verifie si la variable qui est censcée etre un numero de page est bien un chiffre,
         //cela evite qu'un gogole vous pirate avec une injection mysql
         if(!is_numeric($pg))
         {
             $pg = 1;
         }
     
         //connexion mysql
         $link = mysql_connect("$hostname_formConn", "$username_formConn", "$password_formConn") or die("Erreur de connexion: ".mysql_error($link));
         //chois d'une bdd
         mysql_select_db("$database_formConn",$link) or die("Erreur de connexion: ".mysql_error($link));
     
         //c'est le nb d'enregstrements à affiche par page:
         $enreg_par_pg = 100;
     
        //ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
        $limit = $enreg_par_pg*$pg-$enreg_par_pg;
     
         //requete SQL
         $SQL = "SELECT * FROM ma_table";
     
         //fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente. Le paramètre "params" m'était utile mais peut être supprimé
         function pgs($enreg_par_pg, $pg, $link, $SQL, $params)
         {
             //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 doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
             $res = mysql_query($SQL . " ORDER BY `event_cp_event` ASC", $link)or die("Erreur MySQL: ".mysql_error($link));
             $nb_enreg = mysql_num_rows($res);
             if($nb_enreg != 0)
             {
                 //on calcule le nb de pages
                 $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );
                 //numero de page precedente
                 $pp = $pg - 1;
                 //numero de la page suivante
                 $ps = $pg + 1;
     
                echo("Page(s) : ");
                 //si l'utilisateur se se trouve pas a la page n°1
                 if($pg != 1)
                 {
                     //on affiche un lien page précedente
                     //si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
                     echo "<a href='foire.php?pg=$pp$params'>&lt;&lt;<u>page pr&eacute;c&eacute;dente</u>&nbsp;</a>";
                 }
     
                 //definition d'une variable pour la boucle
                 $i=1;
     
                 //la syntaxe do...while permet d'effectuer la boucle au moins une fois!
                 while($i <= $nb_pg_rounded)
                 {
                     if($i != 1)
                    {
                        echo("|");
                    }
     
                     //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
                         //idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
                         echo "&nbsp;<a href='foire.php?pg=$i$params'><u>$i</u></a>\n";
                     }
                     else
                     {
                        //...sinon on affiche simplement le n° de la page actuelle
                        echo "&nbsp;$i&nbsp;";
                     }
                     //incrémentation de la viariable de la boucle
                     $i++;
                     //on recommence tant que $i n'atteint pas le numero de la derniere page
                 }
     
                 //si l'utilisateur n'est pas a la derniere page...
                 if($pg != $nb_pg_rounded)
                 {
                    //...on affiche un lien page suivante
                    //idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
                    echo "&nbsp;<a href='foire.php?pg=$ps$params'><u>page suivante&gt;&gt;</u></a>";
                 }
             }
         }
     
             //Appel de l'affichage de la pagination
             pgs($enreg_par_pg, $pg, $link, $SQL, "&Recherche=Rechercher&date_start=" . $_POST['date_start'] . "&date_end=" . $_POST['date_end'] . "&list0=" . $_POST['list0'] . "&list1=" . $_POST['list1'] . "&list2=" . $_POST['list2'] . "&list3=" . $_POST['list3']);
     
             //Appel avec params vide
             pgs($enreg_par_pg, $pg, $link, $SQL, "");
    Voilà, je pense que ca va t'aider
    dis-moi ce qu'il en est...

  5. #5
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    hmmm pas mal comme bout de code, perso j'utilise une fonction aussi pour la pagination mais dans ton code quelque chose me chiffonne...

    tu calcules bien une limite à afficher ($limit) mais tu n'utilise pas de LIMIT dans ta requête mySQL

    sinon encore une petite chose : $link, n'est pas obligatoire... voilà ça c'est juste pour alléger un peu la fonction ^^

  6. #6
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par Lord Silk Voir le message
    Merci pour ta réponse ^^

    Quitte a passer pour un boulet comment on fait pour gérer avec les boutons precedent et suivant ?
    Tu ne passe pas pour un boulet.
    Tu as plusieurs solutions:
    1/ tu crées un micro formulaire qui contient tes boutons dans ta page (ou tu veux, en haut, en bas) qui appel la page elle même, puis tu fabriques les valeurs pour LIMIT début et fins à partir des valeurs en cours que tu stocke de façon caché dans ton formulaire Version 1/.

    2/ l'autres méthode ses en utilisant les variables de SESSION, s'est un peu plus compliqué.

    3/ Enfin tu peux faire cela en Ajax mais s'est encore plus sioux mais super sexy.

    Voici un petit exemple de formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form>
     <input type=hidden name=old_Deb value=".$Deb.">
     <input type=hidden name=old_Fin value=".$Fin.">
     <input type=submit name=Précedant>
     <input type=submit name=Suivant>
    </form>
    Ensuite tu récupère tes valeurs dans ta variable $_REQUEST[] et tu fais ton traitement.

    Si tu as un pb dépose un bout de ton code et je te guiderai.
    A+

  7. #7
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    hmmm pas mal comme bout de code, perso j'utilise une fonction aussi pour la pagination mais dans ton code quelque chose me chiffonne...

    tu calcules bien une limite à afficher ($limit) mais tu n'utilise pas de LIMIT dans ta requête mySQL

    sinon encore une petite chose : $link, n'est pas obligatoire... voilà ça c'est juste pour alléger un peu la fonction ^^
    c'est vrai que dans ce bout de code je n'utilise pas le $limit.
    C'est qu'en fait, je l'utilise plus loin dans ma requête pour l'affichage... J'ai pas mis toute ma page de code, voilà tout
    pour le $link, il est vrai que l'on peut s'en passer mais bon, perso, je préfére le mettre dans mes requêtes, je trouve que cela fait plus propre... question de gout...

  8. #8
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    allez, moi j'viens de vite re faire une petite fonction... ca faisait lgtmps que j'avais pu fait de pagination, ça m'a donné envie


    Code php : 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
     
    <?php
    // VARIABLES
    $maxPerPage = 10;
     
    require("include/connection.php");
     
    function pages( $p, $maxPerPage, $requete, $params = "" ) {
     
    	$sql = mysql_query($requete) or die(mysql_error());
    	$nbr = mysql_num_rows($sql);
    	$nbrPages = ceil($nbr / $maxPerPage);
     
    	$pp = $p - 1;
    	$ps = $p + 1;
     
    	$aff = "";
     
    	// Affichage lien "Premiere page"
    	$aff .= ' <a href="'.$_SERVER['PHP_SELF'].'?page=1'.$params.'"><<</a> ';
     
    	// Affichage lien "Page précédente" 
    	$aff .= ' <a href="'.$_SERVER['PHP_SELF'].'?page='.$pp.$params.'"><</a> ';
     
    	// Affichage liens des pages
    	for( $i = 1; $i <= $nbrPages; $i++ ) {
    		if( $i == $p ) {
    			$aff .= "<strong>".$i."</strong>";
    		}
    		else {
    			$aff .= ' <a href="'.$_SERVER['PHP_SELF'].'?page='.$i.$params.'">'.$i.'</a> ';
    		}
     
    		if( $i != $nbrPages ) {
    			$aff .= " - ";
    		}
    	}
     
    	// Affichage lien "Page Suivante" 
    	$aff .= ' <a href="'.$_SERVER['PHP_SELF'].'?page='.$ps.$params.'">></a> ';
     
    	// Affichage lien "Dernière page"
    	$aff .= ' <a href="'.$_SERVER['PHP_SELF'].'?page='.$nbrPages.$params.'">>></a> ';
     
     
    	return $aff;
    }
     
    //////// CALCULS & PREPARATIONS DES LIENS
    if( !isset($_GET["page"]) || !is_numeric($_GET["page"]) ) {
    	$p = 1;
    	$start = 0;
    }
    else {
    	$p = $_GET["page"];
    	$start = ($_GET["page"] - 1) * $maxPerPage;
    }
     
    $params = "";
    if( isset($oLink) )
    	$params .= $oLink;
    if( isset($bLink) )
    	$params .= $bLink;
     
     
    echo "<ul>";
     
    // PREPARATION DE LA REQUETE
    $requete = "SELECT * FROM ".$_PRE."news";
     
    if( !isset($_GET["order"]) )
    	$order = "ORDER BY created ";
    else {
    	$order = "ORDER BY ".$_GET["order"]." ";
    	$oLink = "&order=".$_GET["order"];
    }
     
    if( !isset($_GET["by"]) )
    	$order .= "DESC";
    else {
    	$order .= $_GET["by"];
    	$bLink = "&by=".$_GET["by"];
    }
     
    $req = $requete." ".$order." LIMIT $start, $maxPerPage";
    $q = mysql_query($req) or die($req."<br />".mysql_error());
     
    while( $r = mysql_fetch_array($q) ) {
    	echo "<li>".$r["titre"]."</li>";
    }
    echo "</ul>";
     
     
    ///////// UTILISATION DE LA FONCTION : avec paramètres
    echo pages( $_GET["page"], $maxPerPage, $requete, $params );
     
    ///////// UTILISATION DE LA FONCTION : SANS paramètres
    echo pages( $_GET["page"], $maxPerPage, $requete );
    ?>

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est pourtant une problématique plus que courante et traitée par de nombreuses ressources :

    (sans compter le forum)

  10. #10
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    On ne me demande rien, mais je donne mon avis quand même

    Pour quelqu'un qui débute je penque le 3eme tutoriel que tu propose est de loin le plus pédagogique.

    Ce qu'il y a de bien avec la programmation s'est qu'il y a 1000 façons d'aboutir au même résultat. Evidement certain sont plus "smart" que d'autres.

  11. #11
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    Pour moi, je ne sais pas lequel est le plus simple mais les codes sont présentés pas clairement je trouve, et ils sont plus longs que celui que j'avais trouvé sur le net et proposé ci-dessous.
    Maintenant, cela n'engage que moi...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Par défaut
    oula que de réponses et de débat lol, merci a tous pour tout ça je vais de ce pas faire le point et essayer de voir si je comprend quelque chose et si j'arrive a l'intégrer a mon code ^^

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Par défaut
    Bonsoir, alors voila j'ai prit le 3eme tuto qui est vraiment excellent je fait les pages et tout et tout il ne me reste plus qu'un probleme : faire les liens sur les pages lol

    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
    <?php
    include("connect.php");
    session_start();
    $id_blog=$_GET['varnomdublog'];
     
    if ( isset($_SESSION['Pseudo'])){//on vérifie si l'utilisateur est bien loggué et si c'est le cas on récupère le pseudo et le statut 
    	$Pseudo=$_SESSION['Pseudo'];
    	$Type_Utilisateur=$_SESSION['Type_Utilisateur'];
    	//puis on récupère les infos sur le member et plus précisement son blog 
    	$selection="SELECT * FROM blog WHERE Pseudo_Utilisateur = \"".$Pseudo."\"";
    	$Res=mysql_query($selection) or die ("error");
    	while($Lien = mysql_fetch_object($Res)) {
    	$Blog_Ut = $Lien->ID_Blog;//on récupère son ID pour faire un lien direct vers le blog de l'utilisateur
    	}
    }
    ?>
    <?php if ( isset($_SESSION['Pseudo'])){ //si la session en cours contient un pseudo (donc est active), on affiche les liens vers le blog de l'utilisateur et aussi la possibilité de voir la liste des membres ?>
    <a href='afficher_utilisateur.php'>Voir la liste des membres</a>
    <a href='blog_utilisateur.php?varnomdublog=<?php echo $Blog_Ut ?>'>Mon Blog</a>
     
    <?php } else { //si jamais il n'y a pas de session ouverte alors on propose a l'utilisateur de se connecter ou de s'enregistrer?>
    <a href='login.html'>Connectez Vous</a>
    <a href='ajout_utilisateur.php'>Enregistrez Vous</a>
    <?php } ?>
    <a href='afficher_blog.php'>retour page d'accueil</a><br>
    <br><br>
    <?php
    	// Numéro de la page à afficher
    	$page = 0;
    	if(isset($_GET['page']) && is_int($_GET['page'])) {
    	$page = $_GET['page'];
    	}
    	// Nombre de résultats par page
    	$nb = 5;
    	if(isset($_GET['nb']) && is_int($_GET['nb'])) {
    	$nb = $_GET['nb'];
    	}
    	// Nombre total d'enregistrements
    	$sql = "SELECT COUNT(*) FROM article WHERE id_blog=\"".$id_blog."\" ";
    	$query = mysql_query($sql) or die('Erreur MySQL : '.mysql_error());
    	$row = mysql_fetch_row($query);
    	$total = $row[0];
    	// Nombre maximum de pages
    	$max_pg = ceil($total / $nb);
     
    	$resultat="SELECT * FROM blog WHERE id_blog=\"".$id_blog."\" ";
    	$liste=mysql_query($resultat) or die ("error");
     
    $recupTitre="SELECT * FROM article WHERE id_blog=\"".$id_blog."\" LIMIT ".($page * $nb).",".$nb." ";
    $liste_titre=mysql_query($recupTitre) or die ("error 1");
     
    ?>
     
    <p>Page actuelle : <?= $page ?></p>
    <p>Nb d'article par page : <?= $nb ?></p>
     
    <?php
    While($blog=mysql_fetch_object($liste)){
    	$nom=$blog->Nom_Blog;
    }
     
    While($TitreArticle=mysql_fetch_object($liste_titre)){
    	$Titre_Article=$TitreArticle->Titre_Article;
    	$Intro_Article=$TitreArticle->Intro_Article;
    	$ID_Article=$TitreArticle->ID_Article;
    	$Categorie_Article=$TitreArticle->Categorie_Article;
    	$Date=$TitreArticle->Date_Article;	
     
    	echo $Titre_Article;
    	echo" ( ".$Categorie_Article." ) ";
    	echo "écrit le ".$Date."";
    ?>
    	<br>
    	<?php echo $Intro_Article;?><br>
    	<a href='afficher_article.php?id_article=<?php echo $ID_Article ?>'>Voir la suite de l'article</a><br>
     
     
    	<br><?php
    }?>
    <p>Pages :
    <?php
    for($i = 0 ; $i < $max_pg ; $i++) {
    echo ' <a href="?page='.$i.'&nb='.$nb.'">'.$i.'</a>';
    }
    ?>
    </p>
    <p>Nb d'enregistrements par page :
    <a href="?page=<?= $page ?>&nb=5">5</a>
    <a href="?page=<?= $page ?>&nb=10">10</a>
    <a href="?page=<?= $page ?>&nb=20">20</a></p>
     
    <?php 
    if ( isset($_SESSION['Pseudo'])){
    ?>
    <?php
    $Verification="SELECT * FROM blog WHERE id_blog=\"".$id_blog."\" AND Pseudo_Utilisateur='".$Pseudo."'";
    $result = mysql_query($Verification);
    if (!$result || (mysql_num_rows($result) < 1)) {
    	echo "Ceci n'est pas mon blog";
    }
    else {
    	include("ajout_article.html");
    }
    }
    ?>
    Voila mon code modifié, vous l'avez peut etre vu, j'identifie le blog suivant le lien sur lequel on a cliqué grace a son IP que j'envoi depuis la page précédente.

    Je le stock dans la variable $id_blog et grace a cette variable je peux charger les articles correctement.

    Donc tout se fait en fonction de cette variable. Mon prblème c'est comment la faire passer sur la page que je choisie en cliquant sur le n° de page.

    le lien c'est ça pour mémoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ' <a href="?page='.$i.'&nb='.$nb.'">'.$i.'</a>';
    donc voila si quelqu'un voit comment faire passer la variable dans ce lien je suis tout ouïe ^^

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Par défaut
    j'ai trouvé

    voila la réponse si quelqu'un venait a se poser la question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="blog_utilisateur.php?varnomdublog='.$id_blog.'& pages='.$i.'& nb='.$nb.'">'.$i.'</a>';

    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

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