Tom's Guide > Forum > Programmation > [Php] Etaler une requete sur plusieurs page [Resolu]

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

Forum Programmation : [Php] Etaler une requete sur plusieurs page [Resolu]

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

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



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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

UP Svp j'ai vraiment besoin de finir ce truc :-?

Répondre à gokujr545

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.

Répondre à okinou

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



Voila ce que j'ai fait maintenant mais il n'affiche pas mes echo xD

Répondre à gokujr545

J'ai trouver merci quand même

Répondre à gokujr545
Tom's Guide > Forum > Programmation > [Php] Etaler une requete sur plusieurs page [Resolu]
Aller à :

Il y a 412 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens