Se connecter / S'enregistrer
Votre question

[Php] Etaler une requete sur plusieurs page [Resolu]

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
22 Juillet 2006 22:53:09

Bonjour,

J'aurais besoin d'aide si vous avez un peut de temps a me consacrer j'ai tester la portion de code de gn2 mais sa ne marche pas enfin le probleme vient surement de moi c'est même sur lol pourriez vous me corriger en m'expliquant mes erreurs

  1. <?php
  2. // BBcode
  3.  
  4. function bbcode($resume) {
  5. $resume = preg_replace("#\[img]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $resume);
  6. $resume = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=blank>\\1\\3</a>'", $resume);
  7. $resume = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1>$2</a>", $resume);
  8. $resume = preg_replace("/\[url2=(.+?)\](.+?)\[\/url2\]/", "<a href=$1 target=blank>$2</a>", $resume);
  9. $resume = preg_replace("#\[b\](.+?)\[\/b\]#", "<b>$1</b>", $resume);
  10. $resume = preg_replace("#\[i\](.+?)\[\/i\]#", "<i>$1</i>", $resume);
  11. $resume = preg_replace("#\[u\](.+?)\[\/u\]#", "<u>$1</u>", $resume);
  12. $resume = preg_replace("#\[s\](.+?)\[\/s\]#", "<s>$1</s>", $resume);
  13. $resume = preg_replace("#\[left\](.+?)\[\/left\]#", "<div align=\"left\">$1</div>", $resume);
  14. $resume = preg_replace("#\[center\](.+?)\[\/center\]#", "<div align=\"center\">$1</div>", $resume);
  15. $resume = preg_replace("#\[right\](.+?)\[\/right\]#", "<div align=\"right\">$1</div>", $resume);
  16. return $resume;
  17. }
  18.  
  19. echo "<table width=\"550\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  20. <tr>
  21. <td><img src=\"/images/separations/barre.jpg\" width=\"550\" height=\"1\" /></td>
  22. </tr>
  23. <tr>
  24. <td bgcolor=\"#FFFFFF\"><strong>A</strong></td>
  25. </tr>
  26. <tr><td><img src=\"/images/separations/barre.jpg\" width=\"550\" height=\"1\" /></td>
  27. </tr>
  28. </table>
  29. ";
  30.  
  31. if (isset($_GET['limite'])) $limite=$_GET['limite'];
  32. else $limite=0;
  33.  
  34. // on va afficher $nombre résultats par page.
  35. $nombre = 10 ;
  36. // si limite n'existe pas on l'initialise à zéro
  37. if (!$limite) $limite = 0;
  38. // on cherche le nom de la page.
  39. $adressepage = $_SERVER['PHP_SELF'].$_SERVER['REQUEST_URI'];
  40.  
  41. //Connexion a la db
  42. $db = mysql_connect($host,$sqluser,$sqlpass) or die ("Impossible de se connecter au serveur SQL");
  43. mysql_select_db($sqldb,$db) or die ("Impossible de se connecter a la base de donnees");
  44.  
  45. //On compte le nb total d'enregistrements
  46. $sql1 = 'SELECT count(id) FROM galerie_cg"';
  47. $res1 = mysql_query($sql1,$db) or die ('Erreur : '.mysql_error() );
  48. $row = mysql_fetch_row($res1);
  49. $total = $row[0];
  50.  
  51. // On verifie la validité de la variable limite
  52. $verifLimite= verifLimite($limite,$total,$nombre);
  53. // si la limite passée n'est pas valide on la remet à zéro
  54. if(!$verifLimite) $limite = 0;
  55.  
  56. //On récupère ce que l'on veut afficher
  57. $sql = 'SELECT * FROM galerie_cg' or die ("Probleme lors de la lecture de la base de donnees");
  58. $res = mysql_query ($sql, $db) or die('Erreur SQL ! '.$sql.''.mysql_error());
  59. mysql_close ($db);
  60.  
  61. //Si nombre d'enregistrement plus grand que nombre => affichage des liens vers les pages
  62. if($total > $nombre) affichePages($nombre,$adressepage,$total,$limite);
  63.  
  64. // Affichage du résultat
  65. if (isset ($res) && isset($total) )
  66. {
  67. while ( $data = mysql_fetch_array($res) )
  68. {
  69.  
  70. echo "<table width=\"500\" border=\"0\"><tr>
  71. <td colspan=\"2\" bgcolor=\"#FC73CF\"><div align=\"left\" class=\"titre_galerie\">";
  72. echo $data['titre'];
  73. echo "</div></td>
  74. </tr>
  75. <tr>
  76. <td width=\"370\" valign=\"top\" bgcolor=\"#EEEEFF\"><div align=\"left\"><strong>Nombres d'images:</strong> ";
  77. echo $data['annee'];
  78. echo "
  79.  
  80. <strong>Description:</strong> ";
  81. echo nl2br(bbcode(stripslashes($data['resume']),ENT_QUOTES));
  82. echo "</td>
  83. <td width=\"120\" valign=\"top\" bgcolor=\"#EEEEFF\"><div align=\"center\"><img src=\"/illustrations/";
  84. echo $data['illustration'];
  85. echo "\" alt=\"\" width=\"120\" height=\"120\" class=\"image_galerie\" /></div></td>
  86. </tr>
  87. </table>";
  88. }
  89. }
  90. //Si nombre d'enregistrement plus grand que nombre => affichage des liens vers les pages
  91. if($total > $nombre) affichePages($nombre,$adressepage,$total,$limite);
  92. ?>


L'erreur afficher est: Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"' at line 1

Autres pages sur : php etaler requete plusieurs page resolu

23 Juillet 2006 04:30:37

UP Svp j'ai vraiment besoin de finir ce truc :-?
23 Juillet 2006 10:47:53

l'erreur sur ta premiere requete est du a une double quote en trop.

sur la deuxieme requete, le or die n'a rien à faire la, a coté du "SELECT".


va faire un tour sur phpdebutant.org pour voir la structure d'une requete basique.
Contenus similaires
23 Juillet 2006 17:21:28

  1. <?php
  2. // BBcode
  3.  
  4. function bbcode($resume) {
  5. $resume = preg_replace("#\[img]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $resume);
  6. $resume = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=blank>\\1\\3</a>'", $resume);
  7. $resume = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1>$2</a>", $resume);
  8. $resume = preg_replace("/\[url2=(.+?)\](.+?)\[\/url2\]/", "<a href=$1 target=blank>$2</a>", $resume);
  9. $resume = preg_replace("#\[b\](.+?)\[\/b\]#", "<b>$1</b>", $resume);
  10. $resume = preg_replace("#\[i\](.+?)\[\/i\]#", "<i>$1</i>", $resume);
  11. $resume = preg_replace("#\[u\](.+?)\[\/u\]#", "<u>$1</u>", $resume);
  12. $resume = preg_replace("#\[s\](.+?)\[\/s\]#", "<s>$1</s>", $resume);
  13. $resume = preg_replace("#\[left\](.+?)\[\/left\]#", "<div align=\"left\">$1</div>", $resume);
  14. $resume = preg_replace("#\[center\](.+?)\[\/center\]#", "<div align=\"center\">$1</div>", $resume);
  15. $resume = preg_replace("#\[right\](.+?)\[\/right\]#", "<div align=\"right\">$1</div>", $resume);
  16. return $resume;
  17. }
  18.  
  19. echo '<table width=\"550\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  20. <tr>
  21. <td><img src=\"http://world.hentai.free.fr/images/separations/barre.jpg\" width=\"550\" height=\"1\" /></td>
  22. </tr>
  23. <tr>
  24. <td bgcolor=\"#FFFFFF\"><strong>A</strong></td>
  25. </tr>
  26. <tr><td><img src=\"http://world.hentai.free.fr/images/separations/barre.jpg\" width=\"550\" height=\"1\" /></td>
  27. </tr>
  28. </table>
  29. ';
  30.  
  31. // Information de la base
  32. $dbhost = "sql.free.fr";
  33. $dblogin = "world.hentai";
  34. $dbpassword = $pass;
  35. $dbname = "world.hentai";
  36.  
  37. // Conection a la base
  38. $connect = mysql_connect($dbhost,$dblogin,$dbpassword);
  39. $db = mysql_select_db($dbname);
  40.  
  41. // On met dans une variable le nombre de galerie qu'on veut par page
  42. $nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir :o)
  43.  
  44. // On récupère le nombre total de galerie
  45. $retour = mysql_query('SELECT COUNT(*) AS id FROM galerie_cg');
  46. $donnees = mysql_fetch_array($retour);
  47. $totalDesMessages = $donnees['id'];
  48.  
  49. // On calcule le nombre de pages à créer
  50. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
  51.  
  52. // Puis on fait une boucle pour écrire les liens vers chacune des pages
  53. echo 'Page : ';
  54. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  55. {
  56. echo '<a href="accueil.php?images=hentai_cg&tri=all&page=' . $i . '">' . $i . '</a> ';
  57. }
  58.  
  59. if (isset($_GET['page']))
  60. {
  61. $page = $_GET['page']; // On récupère le numéro de la page
  62. }
  63. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  64. {
  65. $page = 1; // On se met sur la page 1 (par défaut)
  66. }
  67.  
  68. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  69. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  70.  
  71. $reponse = mysql_query('SELECT * FROM galerie_cg ORDER BY titre DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
  72.  
  73. while ($donnees = mysql_fetch_array($reponse))
  74. {
  75. echo '<table width=\"500\" border=\"0\"><tr>
  76. <td colspan=\"2\" bgcolor=\"#FC73CF\"><div align=\"left\" class=\"titre_galerie\">';
  77. echo $data['titre'];
  78. echo '</div></td>
  79. </tr>
  80. <tr>
  81. <td width=\"370\" valign=\"top\" bgcolor=\"#EEEEFF\"><div align=\"left\"><strong>Nombres d\'images:</strong> ';
  82. echo $data['annee'];
  83. echo '
  84.  
  85. <strong>Description:</strong> ';
  86. echo nl2br(bbcode(stripslashes($data['resume']),ENT_QUOTES));
  87. echo '</td>
  88. <td width=\"120\" valign=\"top\" bgcolor=\"#EEEEFF\"><div align=\"center\"><img src=\"http://world.hentai.free.fr/include/galerie_xxx/illustrations/';
  89. echo $data['illustration'];
  90. echo '\" alt=\"\" width=\"120\" height=\"120\" class=\"image_galerie\" /></div></td>
  91. </tr>
  92. </table>';
  93. }
  94. mysql_close();
  95. ?>


Voila ce que j'ai fait maintenant mais il n'affiche pas mes echo xD
23 Juillet 2006 18:09:03

J'ai trouver merci quand même
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS