Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  livre d'or

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

livre d'or

n°1136409
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 20:42:35  profilanswer
 

Citation :

<html>
<head>
<title>Livre d'or</title>
</head>
 
<body>
<form method="post" action="livreor.php">
<p>
Si mon site te plait laisse moi un message
</p>
<p>
pseudo :
<input type="text" name="nom">
</p>
<p>
Laisse ton message ^^ :
</p>
<p>
<textarea name="message" rows="5" cols="45">
</textarea>
</p>
<p>
<input type="submit" value="Envoyer">
</p>
</body>
</html>
 
 
 
<?
 mysql_connect ('localhost', 'root', '');
 mysql_select_db ('projet');
 
 
 if (isset ($_POST['nom']) && isset ($_POST['message']))
  {
   $name = htmlentities ( addslashes ( $_POST['nom'] ));
   $mess = nl2br ( htmlentities ( addslashes ($_POST['message'])));
   mysql_query ("INSERT INTO livredor VALUES ('', '$name', '$mess')" ) or die ("Echec de l'enregistrement" );
  }
 
 $reponse = mysql_query ('SELECT * FROM livredor ORDER BY id DESC LIMIT 0, 3');
 while ( $donnees = mysql_fetch_array ($reponse))
  {
   echo $donnees['pseudo']. " : ".$donnees['message']."<br />";
  }
   
  $entrees = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM livredor" );
   $nombredemessageposter = mysql_fetch_array($entrees);
    echo 'il y a eu '.$nombredemessageposter['nbre_entrees'].'message poster <br />';
   $nombredepage = ceil ( $nombredemessageposter['nbre_entrees'] / 3 );
    echo ' nous aurons donc besoin de '.$nombredepage.' pages: ';
 
 for ($nombre_de_lignes = 1; $nombre_de_lignes <= $nombredepage; $nombre_de_lignes++)
   {
    $lien = $nombre_de_lignes;
      echo '<a href="livreor.php?page='.$lien.'">'.$nombre_de_lignes.', </a>';
 }
 
   if ( isset ($_GET['page']))
  {
    $page = $_GET['page'];
    echo "<br />Vous etre a la page n°".$page;
  }
   
  else  
   {
    $page = 1;
    echo "<br />Vous etre a la page n°".$page;
   }
   
?>
 
 
<?
 mysql_close();
?>


 
voila j'ai fais ce code pour cree un livre d'or tout marche sauf que je ne peux affiche que les dernieres news que j'ai poster. lorsque je clique sur un lien pour changer de page le lien dans la barre d'adresse change bien mais ca affiche toujorus les memes messages  :heink: . SI quelqu'un pourrai me dire ce qui ne va pas ... merci d'avance

mood
Publicité
Posté le 30-06-2005 à 20:42:35  profilanswer
 

n°1136415
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 30-06-2005 à 20:47:03  profilanswer
 

bonsoir à toi aussi  :o  
 
va faire un tour sur la fonction rechercher. c'est une question qui reviens sans cesse...

n°1136419
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 20:48:31  profilanswer
 

euh ... d'accord merci beaucoup :)
bonsoir :)

n°1136440
sielfried
Posté le 30-06-2005 à 21:05:30  profilanswer
 

Citation :


$reponse = mysql_query ('SELECT * FROM livredor ORDER BY id DESC LIMIT 0, 3');  
 while ( $donnees = mysql_fetch_array ($reponse))  
  {  
   echo $donnees['pseudo']. " : ".$donnees['message']."<br />";  
  }  


 
Forcément là ça risque d'afficher les 3 premières à chaque fois...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1136442
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 21:07:31  profilanswer
 

oui c'est ce que je veu fait afficher les trois premieres sur chaque page. Mais la mes 8 page affiches toujours les 3 message poster identique :(

n°1136454
sielfried
Posté le 30-06-2005 à 21:21:56  profilanswer
 

Il faut jouer avec le LIMIT dans ta requête. Là ça te sort les 3 news les plus récentes dans la base. Sur la seconde page, tu veux que ça t'affiche les news de 4 à 6, donc ton LIMIT devra être 3, 3 (je crois, je me rappelle jamais comment marche LIMIT exactement). Puis 6, 3 sur la troisième, etc.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1136465
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 21:27:35  profilanswer
 

a d'accord j'ai compris merci beaucoup ... je sais ce qu'il faut faire faut que je trouve le calcul maitenant XD

n°1136493
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 21:47:39  profilanswer
 

et avec ca ca ne marche pas :( :
LIMIT 3*$_GET['page'], 3*($_GET['page']+1)

n°1136516
sielfried
Posté le 30-06-2005 à 22:06:22  profilanswer
 

"Ca marche pas", t'as pas plus vague ? -_-
 
Le deuxième paramètre de ton LIMIT est fixe a priori, c'est le nombre de messages par page en gros.
 
Le premier me semble bon si ton $_GET['page'] vaut 0 sur la page 1 et ainsi de suite.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1136525
snarky
Posté le 30-06-2005 à 22:13:23  profilanswer
 

Code :
  1. include('./includes/sql.php');
  2. $numNews = 5; // "Variable a mettre dans config" - Nombre de news a afficher
  3. $requete = mysql_unbuffered_query("SELECT COUNT(id_article) FROM Articles" ) or die('Echec lorsque de l\envoi de $requete');
  4. $numRows = mysql_fetch_row($requete); // Calcul du nombre de news total sous forme de tableau
  5. $numPages = ceil($numRows[0] / $numNews); // Calcul du nombre de pages total
  6. if($num == "" )
  7. {
  8. $page = 1;
  9. $position = 0;
  10. }
  11. else
  12. {
  13. $page = $num + 1;
  14. $position = $numNews * ($page - 1);
  15. }
  16. if($numPages > 1) // Si il y a plusieurs pages on affiche la barre de pagination
  17. {
  18. $pagination = '<a href="pagination.php?num='.($page - 2).'">Précedent</a> <a href="pagination.php?num='.$page.'">Suivant</a>';
  19. }
  20. else // Si il n'y a qu'une page, on affiche rien
  21. {
  22. $pagination = '';
  23. }
  24. if($page > 1)
  25. {
  26. $next = '';
  27. $prec = '<a href="pagination.php?num='.($page - 2).'">Précedent</a>';
  28. }
  29. else
  30. {
  31. $next = '<a href="pagination.php?num='.$page.'">Suivant</a>';
  32. $prec = '';
  33. }
  34. echo 'Les resultats tiennent sur :' , $numPages , ' pages.<br />Vous êtes actuellement sur la page ' , $page , '.<br />' , $position , '<br />';
  35. $requete_article = mysql_query("SELECT title_article FROM Articles ORDER BY time_article AND date_article DESC LIMIT $position, $numNews" ) or die("echec de la requ&ecirc;te MYSQL" );
  36. while($article = mysql_fetch_array($requete_article))
  37. {
  38. //Affichage des articles du jour
  39. echo'<h2>',$article['title_article'],'</h2>';
  40. }
  41. echo $pagination;
  42. ?>


 
c'est pas encore fini mais c'est deja un debut, ça permet d'afficher les news suivantes et precédentes, mais je n'ai pas encore mis de limites ce qui fait qu'une fois la derniere page dépassée on peut encore aller tres loin :p
 
au passage, si quelqu'un voit des choses a améliorer je suis prenneur :jap:

mood
Publicité
Posté le 30-06-2005 à 22:13:23  profilanswer
 

n°1136549
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 22:28:24  profilanswer
 

ca fati koi ici ???

n°1136553
kirua_sama
Learn sciences with senses
Posté le 30-06-2005 à 22:29:23  profilanswer
 

en fait ce qui deconne c'est que lorsque je lance la page des le debut il manque ca : ?page=. donc ca 'na aucune valeur

n°1136585
snarky
Posté le 30-06-2005 à 22:44:02  profilanswer
 

si ton ?page=0 alors c'est que tu te trouve en premiere page
 
ton ?page correspond a mon  ?num

Code :
  1. # if($num == "" )
  2. #     {
  3. #     $page = 1;
  4. #     $position = 0;
  5. #     }
  6. # else
  7. #     {
  8. #     $page = $num + 1;
  9. #     $position = $numNews * ($page - 1);
  10. #     }

n°1136692
dwogsi
Défaillance cérébrale...
Posté le 01-07-2005 à 01:50:30  profilanswer
 

Code :
  1. # if( !isset($_GET["num"]) or !is_numeric($_GET["num"]) )
  2. #     {
  3. #     $page = 1;
  4. #     $position = 0;
  5. #     }
  6. # else
  7. #     {
  8. #     $page = $_GET["num"] + 1;
  9. #     $position = $numNews * ($page - 1);
  10. #     }


 
Mieux à mon avis.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1136718
esox_ch
Posté le 01-07-2005 à 08:08:34  profilanswer
 

kirua_sama a écrit :

et avec ca ca ne marche pas :( :
LIMIT 3*$_GET['page'], 3*($_GET['page']+1)


 
Meilleur moyen de se faire peter la base de donnée grace aux sql injections
 

dwogsi a écrit :

Code :
  1. # if( !isset($_GET["num"]) or !is_numeric($_GET["num"]) )
  2. #     {
  3. #     $page = 1;
  4. #     $position = 0;
  5. #     }
  6. # else
  7. #     {
  8. #     $page = $_GET["num"] + 1;
  9. #     $position = $numNews * ($page - 1);
  10. #     }


 
Mieux à mon avis.


 
Mieux


Message édité par esox_ch le 01-07-2005 à 08:08:51

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1136947
kirua_sama
Learn sciences with senses
Posté le 01-07-2005 à 11:08:53  profilanswer
 

Merci beaucoup tout le monde ca marche maitenant :)... je pense qu'il fallais surtout le is_numeric :) parce que sinon meme si il y avait une valeur null le if etait accompli merci tout le monde.

n°1137523
snarky
Posté le 01-07-2005 à 16:46:18  profilanswer
 

merci :jap:

n°1138590
richou_
Posté le 03-07-2005 à 14:00:35  profilanswer
 

Bonjours a tous  
 
moi je cherche un moyen de remplacer les numeros de page par des petits points si jamais yavais plus de 5 pages par exemples.
Merci :jap:

n°1138592
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 14:04:01  profilanswer
 

Bah tu peux faire un while (avec un break; à 5) pour afficher la liste des page ou même un for.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138598
richou_
Posté le 03-07-2005 à 14:15:20  profilanswer
 

et comment je pourrais proceder?

n°1138599
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 14:17:29  profilanswer
 

Code :
  1. <?
  2. $i = 0;
  3. while ( $i < $_GET["num"] )
  4. {
  5.   // affichage du liens vers la page n° $i
  6.   if ( $i > 5 )
  7.   {
  8.      // affichage des ...
  9.      break; // Quitte la boucle while
  10.   }
  11.   $i++;
  12. }
  13. ?>

Message cité 1 fois
Message édité par dwogsi le 03-07-2005 à 14:27:57

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138600
richou_
Posté le 03-07-2005 à 14:18:10  profilanswer
 

ok je vais voir ca merci  
:jap:

n°1138607
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 14:32:28  profilanswer
 

Code :
  1. $i = 0;
  2. while ( $i < $_GET["num"] )
  3. {
  4.   echo "<a href=\"?num=".$i.">".$i."</a> ";
  5.   if ( $i > 5 )
  6.   {
  7.     echo echo "...";
  8.     break;
  9.   }
  10. }


 
Par exemple, ensuite faut juste améliorer ca pour que, lorsque le visiteur va plus loin dans les pages du livre d'or, ce soit le numéros de pages suivant qui soient affichés.


Message édité par dwogsi le 03-07-2005 à 14:32:38

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138611
richou_
Posté le 03-07-2005 à 14:43:07  profilanswer
 

oué justement c'est ca que je n'arrive pas a faire :/
 
Edit :  Mais quand je clique sur la derniere page avant les petits points et que je clique sur suivant la page ne s'affiche pas et j'ai un message d'erreur qui apparais : "Fatal error: Maximum execution time of 30 seconds exceeded"


Message édité par richou_ le 03-07-2005 à 14:47:37
n°1138619
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 14:57:27  profilanswer
 

lol, t'as fais un truc qui va dans une boucle un peut longue? non?
 
Sinon pour le système des pages je pensais peut être qqu chose comme ca:
 

Code :
  1. if ( $_GET["num"] > 5 )
  2. {
  3.   $i = $_GET["num"] - 3; // Affichage des 3 pages avant
  4.   $max = $_GET["num"] + 2; // Définie jusqu'ou on va
  5. }else{
  6.   $i = 0; // Ou du début si on est au début
  7.   $max = 5;
  8. }
  9. while ( $i < $_GET["num"] )
  10. {
  11.   echo "<a href=\"?num=".$i.">".$i."</a> ";
  12.   if ( $i > $max )
  13.   {
  14.    echo "<a href=\"?num=".$i+1.">...</a> ";
  15.    break;
  16.   }
  17. }


 
Je réflechi sur un script la et dès que j'ai un truc qui marche bien je te donne un lien ca m'amuse et sa m'occupe de faire ca...


Message édité par dwogsi le 03-07-2005 à 15:04:14

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138631
richou_
Posté le 03-07-2005 à 15:07:57  profilanswer
 

dwogsi a écrit :

lol, t'as fais un truc qui va dans une boucle un peut longue? non?
 


 
lol bah en fait javais mis un while et un for c'est pour ca que ca marchais pas mais c'est bon la ca marche :D
 

dwogsi a écrit :


Code :
  1. * if ( $_GET["num"] > 5 )
  2.      {
  3.        $i = $_GET["num"] - 3; // Affichage des 3 pages avant
  4.        $max = $_GET["num"] + 2; // Définie jusqu'ou on va
  5.      }else{
  6.        $i = 0; // Ou du début si on est au début
  7.        $max = 5;
  8.      }
  9.    
  10.      while ( $i < $_GET["num"] )
  11.      {
  12.        echo "<a href=\"?num=".$i.">".$i."</a> ";
  13.        if ( $i > $max )
  14.        {
  15.         echo "<a href=\"?num=".$i+1.">...</a> ";
  16.         break;
  17.        }
  18.      }




Super ca marche Merci beaucoup depuis le temps que je voulais faire ca...
:D
:jap:

n°1138654
richou_
Posté le 03-07-2005 à 15:45:51  profilanswer
 

Maintenant je cherche a virer les numero de page qui sont avant pour avoir un truc du genre :  
"page : << ... 3 4 5 ... >>"
 
J'ai pensé a ca :
 

Code :
  1. if ( $_GET["num"] > 5 )
  2.     {
  3.        $i = $_GET["num"] - 3; // Affichage des 3 pages avant
  4.        $max = $_GET["num"] + 2; // Définie jusqu'ou on va
  5.      }else{
  6.        $i = 0; // Ou du début si on est au début
  7.        $max = 5;
  8.      }
  9.    
  10.      while ( $i < $_GET["num"] )
  11.      {
  12.        echo "<a href=\"?num=".$i.">".$i."</a> ";
  13.        if ( $i > $max )
  14.        {
  15.         echo "<a href=\"?num=".$i+1.">...</a> ";
  16.         break;
  17.        }
  18.        $min = $_GET["num"] - 3;
  19.        if ($i < $min )
  20.        {
  21.        echo  ' ... ';
  22.        }
  23.      }
  24.      }


 
Les trois petit points apparraissent bien quand je veux mais les i ne disparraissent pas :/

n°1138697
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 18:17:11  profilanswer
 

Un truc de ce genre là ?
http://www.softsharing.net/perso/forums/sys_pages.php


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138729
richou_
Posté le 03-07-2005 à 19:23:15  profilanswer
 

oui exactement  
pourrais tu poster le code stp :D

n°1138731
dwogsi
Défaillance cérébrale...
Posté le 03-07-2005 à 19:26:31  profilanswer
 

Bon alors ca fera 100€, lol
tiens voilà ta source lol et tu regardera quand même l'adresse du script et l'adresse de la source, lol fallait chercher un peu!!!
http://www.softsharing.net/perso/forums/sys_pages.txt


Message édité par dwogsi le 03-07-2005 à 19:26:51

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1138751
richou_
Posté le 03-07-2005 à 20:15:30  profilanswer
 

Merci :)
 
C'est vrai mais il fallais y penser lol :D

n°1190295
kirua_sama
Learn sciences with senses
Posté le 02-09-2005 à 11:47:11  profilanswer
 

Merci pour tout ca

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  livre d'or

 

Sujets relatifs
Sortie d'un nouveau livre sur les CSSlivre d'or probleme personne peu m aider ??
[XML] Cherche très bon livre...Le livre d'or en PHP
avis sur un livre ASMLivre d'or, le nombre de mesages par pages
Quel livre acheter pour démarrer en VBlivre ? .net, c# et asp
Problème sur livre d'or de mon siteLivre sur le flash pour un site web
Plus de sujets relatifs à : livre d'or


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR