Livre d'or

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 12:14

Bonjour,

j'ai un livre d'or sur mon site, mais le probleme c'est que quand je le configure pour afficher 5 messages par page il me fait toutes les meme page numerotée de 1 à ... mais avec seulement mes 5 premier message sur chaque page et pas le autres . je pense avoir un probleme au niveau de mon code mais je ne trouve pas de solution .

Code : Tout sélectionner

//// Calcul du nombre de pages //// echo "<center> \n "; echo "Page :\n "; $nbpages = ceil($total / $nb); for($i = 1;$i <= $nbpages;$i ++) { echo "<a href=\"index.php?page=$i&total=$total\" class=titre>$i</a> \n"; if($i < $nbpages) echo " - "; } echo "<br><a href=\"admin/\" target=_blank><b>Admin</b></a></center>\n ";
Merci de votre aide

Mammouth du PHP | 1776 Messages

21 nov. 2006, 12:30

Prends tu en compte dans ta requête le numéro de page sur laquelle tu te trouves ?

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 12:43

pour l'instant j'ai 16 messages que j'affiche sur une page ( vu le probleme)
mais quand je configure en moins de message par page il ne me fait pas de pages differente

veux tu l'adresse de ma page pour voir ?

Mammouth du PHP | 19672 Messages

21 nov. 2006, 12:48

En cherchant un peu, on trouve des choses passionnantes sur le forum :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 13:41

j'ai bien regardé le lien que tu m'as donné, mais je ne trouve pas d'ou vien mon probleme . Quelle partie dans ton code indique que la page 2 doit afficher ça ou ça ou encore ça ?

c'est ce code la


Code : Tout sélectionner

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> | "; } }
Merci pour l'aide .

je debute et decouvre en meme temps plein de choses que je doit comprendre.

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 13:59

C'est au niveau du code ici que j'ai un probleme, quand je met $page=2 il me donne bien la 2éme serie de message .

Code : Tout sélectionner

//// Initialisation affichage page par page //// if(empty($page)) $page=1; if(empty($total)) { $req=mysql_query("SELECT * FROM twiggy_messages"); $total=mysql_num_rows($req); }

Mammouth du PHP | 19672 Messages

21 nov. 2006, 14:23

Le code de l'exemple cité est largement commenté. prends le temps de lire les commentaires, ils sont aussi important que le texte avant et/ou après le code.

Comprends bien ce que je veux dire : je veux faire en sorte que tu comprennes et sois à même de corriger toi-même ton code. Le corriger moi-même est totalement sans intérêt pour nous deux : pour moi parce que je connais déjà tout ça, et pour toi parce que tu n'apprendras rien et resteras dépendant des autres. Les exemple que j'indique sont en général écrits dans cette optique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 15:44

je comprend bien ton point de vue, mais n'ayent jamais fait de php je rame quelques peut .

le probleme doit venir de la partie suivante :

Code : Tout sélectionner

//// On determine debut du limit //// $debut=($page -1)*$nb ;
sais tu me dire si je suis dans le bon ?

j'ai essayer de modifier le code plusieurs fois et pas de bon resultats c'est pour moi le -1 qui est pas juste .

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 16:22

Je pense à une chose .

le code de ma page n'est pas vraiment identique à ton modele .

sais tu voir si c'est bien dans la page où je cherche qu'il y un probleme ?

je met le code de la page et dit moi si tu voit un truc qui cloche .

Merci

Code : Tout sélectionner

<? //// On inclut le formulaire pour ajouter un nouveau message //// include("formulaire.php"); //// Connexion à la base mySQL //// @MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible"); @MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible"); $req=mysql_query("SELECT * FROM twiggy_messages"); $nbmsg=mysql_num_rows($req); if($nbmsg=="") { echo "<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br><br><br>"; } function CouperMot($message,$cut) { $message=wordwrap($message,$cut, " ", 1); return $message; } //// Initialisation affichage page par page //// if(empty($page)) $page=1; if(empty($total)) { $req=mysql_query("SELECT * FROM twiggy_messages"); $total=mysql_num_rows($req); } //// On determine debut du limit //// $debut=($page-1)*$nb; $req=mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT $debut,$nb"); while($comment=mysql_fetch_array($req)) { $comment['auteur']=CouperMot($comment['auteur'],$cut); $email="$comment[email]"; if(empty($email)) { echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n"; echo " <tr>\n"; echo " <td class=\"row_1\"> \n"; echo " <b>Auteur :</b> $comment[auteur] || <b>Posté le :</b> $comment[date]</b> \n"; echo " </td> \n"; echo " </tr> \n"; } else { echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n"; echo " <tr>\n"; echo " <td class=\"row_1\"> \n"; echo " <b>Auteur : <a href=\"mailto:$comment[email]\">$comment[auteur]</a></b> || <b>Posté le :</b> $comment[date] \n"; echo " </td> \n"; echo " </tr> \n"; } $commentaire="$comment[commentaire]"; $commentaire=CouperMot($commentaire,$cut); $req2=mysql_query("SELECT * FROM twiggy_censure"); while($censure=mysql_fetch_array($req2)) { $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire); } if($autogen=="oui") { $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire); $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire); } $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire); echo " <tr> \n"; echo " <td class=\"row_2\"> \n"; echo " $commentaire \n"; echo " </td>\n"; echo " </tr> \n"; echo "</table><br> \n"; } mysql_close(); //// Calcul du nombre de pages //// echo "<center> \n "; echo "Page :\n "; $nbpages = ceil($total / $nb); for($i = 1;$i <= $nbpages;$i ++) { echo "<a href=\"index.php?page=$i&total=$total\" class=titre>$i</a> \n"; if($i < $nbpages) echo " - "; } echo "<br><a href=\"admin/\" target=_blank><b>Admin</b></a></center>\n "; echo "</body> \n"; echo "</html> \n"; ?>

Mammouth du PHP | 19672 Messages

21 nov. 2006, 17:21

Bon ben on va commencer par tester avec un code un peu rangé et proprement écrit :
<?php
//// On inclut le formulaire pour ajouter un nouveau message ////
include("formulaire.php");

//// Connexion à la base mySQL ////

mysql_connect($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
mysql_select_db($db) or die ("Connexion à la base $base impossible");


$req=mysql_query("SELECT * FROM twiggy_messages");
$nbmsg=mysql_num_rows($req);

if($nbmsg=="")
{
?>
<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br>
<br>
<br>
<?php
}

function CouperMot($message,$cut)
{
    $message=wordwrap($message,$cut, " ", 1);
    return $message;
}

//// Initialisation affichage page par page ////

if(empty($page)) $page=1;
if(empty($total))
{
    $req=mysql_query("SELECT * FROM twiggy_messages");
    $total=mysql_num_rows($req);
}

//// On determine debut du limit ////
$debut = ($page - 1) * $nb;

$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb ."");
while($comment=mysql_fetch_array($req))
{
    $comment['auteur']=CouperMot($comment['auteur'],$cut);

    $email="$comment[email]";

    if(empty($email))
    {
?>
<table border="0" align="center" cellpadding="5" cellspacing="1" width="400" class="tableau">
  <tr>
    <td class="row_1">
      <b>Auteur :</b> <?php echo($comment['auteur']); ?> || <b>Posté le :</b> <?php echo($comment['date']); ?></b>
    </td>
  </tr>
<?php
    }
    else
    {
?>
<table border="0" align="center" cellpadding="5" cellspacing="1" width="400" class="tableau">
  <tr>
    <td class="row_1">
      <b>Auteur : <a href="mailto:<?php echo($comment['email']); ?>"><?php echo($comment['auteur']); ?></a></b> || <b>Posté le :</b> <?php echo($comment['date']); ?>
    </td>
  </tr>
<?php
    }
    $commentaire = $comment['commentaire'];

    $commentaire=CouperMot($commentaire,$cut);

    $req2=mysql_query("SELECT * FROM twiggy_censure");
    while($censure=mysql_fetch_array($req2))
    {
        $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire);
    }

    if($autogen=="oui")
    {
        $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire);
        $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire);
    }

    $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire);
?>
  <tr>
    <td class="row_2">
      <?php echo($commentaire); ?>
    </td>
  </tr>
</table>
<br>
<?php
}
mysql_close();
//// Calcul du nombre de pages ////
?>
<center>Page :
<?php
$nbpages = ceil($total / $nb);
for($i = 1;$i <= $nbpages;$i ++)
{
?>
<a href="index.php?page=<?php echo($i); ?>&total=<?php echo($total); ?>" class="titre"><?php echo($i); ?></a>
<?php
    if($i < $nbpages) echo " - ";
}
?>
<br>
<a href="admin" target="_blank"><b>Admin</b></a></center>
</body>
</html>
Teste déjà ça.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 17:31

j'ai toujours le meme probleme, pas d'affichage corect en page 2,3,...

Mammouth du PHP | 19672 Messages

21 nov. 2006, 17:36

Le contraire m'aurait presque surpris, je ne me suis pas trop attardé sur les détails, mais comprends bien que pour débugguer un programme, il faut qu'il soit lisible. CQFD, on commence par le ménage.

Maintenant, un peu d'analyse :
$debut = ($page - 1) * $nb;
Où donc est définie ta variable $nb?
Je ne la vois nulle part, donc forcément, ici:
$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb ."");
le second paramètre de LIMIT est tout aussi absent...

Commence par corriger ça et reviens avec la suite :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 21:53

Voila .
<?
//// On inclut le formulaire pour ajouter un nouveau message ////
include("formulaire.php");


//// Connexion à la base mySQL ////

@MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
@MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");


$req=mysql_query("SELECT * FROM twiggy_messages");
$nbmsg=mysql_num_rows($req);

if($nbmsg=="")
 {
  echo "<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br><br><br>";
 }
 
function CouperMot($message,$cut)
   {
    $message=wordwrap($message,$cut, " ", 1);
    return $message;
   }

//// Initialisation affichage page par page ////

if(empty($page)) $page=1;
if(empty($total))
 {
  $req=mysql_query("SELECT * FROM twiggy_messages");
  $total=mysql_num_rows($req);
 }

//// On determine debut du limit ////
$debut=($page-1)*$nb;

$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb .""); 
while($comment=mysql_fetch_array($req))
 {
  $comment['auteur']=CouperMot($comment['auteur'],$cut);
  
  $email="$comment[email]";
  
  if(empty($email))
   {
    echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n";
    echo " <tr>\n";
    echo "     <td class=\"row_1\"> \n";
    echo "         <b>Auteur :</b> $comment[auteur] || <b>Posté le :</b> $comment[date]</b> \n";
    echo "     </td> \n";
    echo " </tr> \n";
   }
   
  else
   {
    echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n";
    echo " <tr>\n";
    echo "     <td class=\"row_1\"> \n";
    echo "         <b>Auteur : <a href=\"mailto:$comment[email]\">$comment[auteur]</a></b> || <b>Posté le :</b> $comment[date] \n";
    echo "     </td> \n";
    echo " </tr> \n";
   }

  $commentaire="$comment[commentaire]";
  
  $commentaire=CouperMot($commentaire,$cut);
  
  $req2=mysql_query("SELECT * FROM twiggy_censure");
  while($censure=mysql_fetch_array($req2))
  {
   $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire);
  }

  
  if($autogen=="oui")
   {
    $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire);
    $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire);
   }
   
  $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire);

  echo " <tr> \n";
  echo "     <td class=\"row_2\"> \n";
  echo "         $commentaire \n";
  echo "     </td>\n";
  echo " </tr> \n";
  echo "</table><br> \n";
  
 }

mysql_close();
  
//// Calcul du nombre de pages ////

echo "<center> \n ";

echo "Page :\n ";
$nbpages = ceil($total / $nb);
for($i = 1;$i <= $nbpages;$i ++)
 {
  echo "<a href=\"index.php?page=$i&total=$total\" class=titre>$i</a> \n";
  if($i < $nbpages) echo " - ";
 }
 
echo "<br><a href=\"admin/\" target=_blank><b>Admin</b></a></center>\n ";

echo "</body> \n";
echo "</html> \n";

?>
ça ne fonctionne toujour pas .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 nov. 2006, 22:05

Alors, 1erement, ça ne marche pas, ca ne nous aide pas a t'aider.

Il faut que tu nous dises ce que tu obtiens.

Ensuite, c'est pas parce que Cyrano te montre une variable qui n'existe pas dans une requete qu'il faut le supprimer ;)
Il vaut mieux se demander a quoi elle correspond et essayer de la récupérer correctement :D
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

autocleanconcept
Invité n'ayant pas de compte PHPfrance

21 nov. 2006, 22:52

je comprend bien votre but de vouloir aider les autres, mais le probleme c'est que pour ce qui est de " variable, requete,...) je n'y comprend pas grand chose .

je cherche juste à ce que quelqu'un m'aide à resoudre les divers problemes que j'ai sur mon site .

Mon site est un outils de travail qui permet à mes client de mieux connaitre ma societe et mes services, je n'ai pas trop de temps à consacrer pour le php vu mon boulot .

merci de me comprendre ( je ne cherche pas à devenir un pro du php)

d'avance, merci à vous.