Tom's Guide > Forum > Programmation > Optimiser une base de donnée

Optimiser une base de donnée

Forum Programmation : Optimiser une base de donnée

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

Salut, alors voilà j'ai créer une gallerie possédant 7 rubriques et 64 photos ces 64 photos sont rediriger via imageshark elle ne sont donc pas sur mon ftp. La base de donnée de la gallerie fais +ou- 16ko, j'ai une autre base de donnée pour les téléchargement celle si fais +ou- 42ko, mon problème c'est qu'a l'ouverture d'une rubrique de la gallerie c'est assez lent il faut +ou- 5 secondes pour que sa s'ouvre, alors que la pages téléchargement ne prend qu'une fraction de seconde, alors que la base de donnée et plus volimineuse :heink:

Est-ce possible d'optimiser la base de donner de la gallerie pour que se soit plus rapide? ou alors ma solution sera de créer une deuxième? merci de votre aide

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

OPTIMIZE TABLE nom_de_ta_table

Répondre à cybertaf

si j'ai bien compris, tu affiches une page avec des liens vers imageshark.
tu es sur que c'est la requete qui prends du temps?

Répondre à coca25

16ko, voire 42ko, c'est ridicule pour une base...
Met nous ton code, on pourra peut-être relever un soucis.

Répondre à crazycat@idn

C'est du nuked klan, en fait j'ai une table pour les catégorie et une table pour les images! je suis malheureusement obligé d'héberger sur imagesharck vu que je ne dispose que de 200Mo, pour le code source tu peux aller voir sur mon site rubrique galerie! merci

Répondre à Allstar27

crazycat@idn a écrit :

Met nous ton code, on pourra peut-être relever un soucis.


Allstar27 a écrit :

C'est du nuked klan, en fait j'ai une table pour les catégorie et une table pour les images!



Tu crois réellement que je vais installer un nuked machin et trouver le module que tu as pu mettre pour le corriger?
Alors, soit tu met une copie du code qui te semble merdoyer ici, soit tu attends que Vinz42 s'occupe de ton cas.

Répondre à crazycat@idn

tu as essayé de lancer la requete toute seule pour voir si c'est elle qui met du temps.
si c'est le cas tu effectues peut etre des jointure sur de mauvais champs
tu pourrais rajouter des index

Répondre à coca25

Bon bein voilà alors

Code :
  1. <?php
  2. if (!defined("INDEX_CHECK" ))
  3. {
  4.     die ("<div style=\"text-align: center;\">You cannot open this page directly</div>" );
  5. }
  6. global $nuked, $language, $user;
  7. translate("modules/Gallery/lang/" . $language . ".lang.php" );
  8. include("modules/Gallery/config.php" );
  9. if (!$user)
  10. {
  11.     $visiteur = 0;
  12. }
  13. else
  14. {
  15.     $visiteur = $user[1];
  16. }
  17. $ModName = basename(dirname(__FILE__));
  18. $level_access = nivo_mod($ModName);
  19. if ($visiteur >= $level_access && $level_access > -1)
  20. {
  21.     compteur("Gallery" );
  22.     function view_screen($sid)
  23.     {
  24.         global $nuked;
  25.         $sql = mysql_query("SELECT titre, url FROM " . GALLERY_TABLE . " WHERE sid = '" . $sid . "'" );
  26.         list($titre, $url) = mysql_fetch_array($sql);
  27.         $titre = stripslashes($titre);
  28.         $titre = htmlentities($titre);
  29.         $name = strrchr($url, '/');
  30.         $name = substr($name, 1);
  31.         $name_enc = rawurlencode($name);
  32.         $url = str_replace($name, $name_enc, $url);
  33.     echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
  34.     . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
  35.     . "<head><title>" . $titre . "</title>\n"
  36.     . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
  37.     . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
  38.     . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
  39.     . "<body style=\"background: " . $bgcolor2 . ";margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;\">\n"
  40.     . "<div style=\"text-align: center;\"><a href=\"javascript: self.close()\"><img style=\"border: 0;\" src=\"" . $url . "\" alt=\"\" title=\"" . _CLICTOCLOSE . "\" /></a></div></body></html>";
  41.     }
  42.     function cat($cat)
  43.     {
  44.         global $nuked, $bgcolor1, $bgcolor2, $bgcolor3, $img_cat, $img_none, $image_resize;
  45.         $counter = 0;
  46.         $sql = mysql_query("SELECT cid, titre, description FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cat . "'" );
  47.     $nb_subcat = mysql_num_rows($sql);
  48.         if ($nb_subcat > 0)
  49.         {
  50.             echo "<table width=\"100%\" cellspacing=\"5\" cellpadding=\"0\" border=\"0\">\n";
  51.             $sql = mysql_query("SELECT cid, titre, description FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cat . "' ORDER BY position, titre" );
  52.             while (list($catid, $parentcat, $parentdesc) = mysql_fetch_array($sql))
  53.             {
  54.                 $parentcat = stripslashes($parentcat);
  55.                 $parentdesc = stripslashes($parentdesc);
  56.                 $parentcat = htmlentities($parentcat);
  57.                 $parentdesc = htmlentities($parentdesc);
  58.                 $parentdesc = BBcode($parentdesc);
  59.                 $parentdesc = icon($parentdesc);
  60.                 $sql_img = mysql_query("SELECT url, url2, date FROM " . GALLERY_TABLE . " WHERE cat = '" . $catid . "' ORDER BY sid DESC" );
  61.                 $nb_imgcat = mysql_num_rows($sql_img);
  62.                 list($url, $url2, $date) = mysql_fetch_array($sql_img);
  63.                 if ($url2 != "" && $url2 != "http://" )
  64.                 {
  65.                     $image = $url2;
  66.                 }
  67.                 else
  68.                 {
  69.                     $image = $url;
  70.                 }
  71.                 $name = strrchr($image, '/');
  72.                 $name = substr($name, 1);
  73.                 $name_enc = rawurlencode($name);
  74.                 $image = str_replace($name, $name_enc, $image);
  75.                 if ($date)
  76.                 {
  77.                     $date = strftime("%x", $date);
  78.                     $last_date = _LASTADD . "&nbsp;" . $date;
  79.                 }
  80.                 else
  81.         {
  82.                     $last_date = "";
  83.         }
  84.                 if ($catid != $last_catid)
  85.                 {
  86.                     $counter++;
  87.                     if ($counter == 1)
  88.                     {
  89.                         echo "<tr>";
  90.                     }
  91.                     echo "<td style=\"width: 50%;\" valign=\"top\">\n"
  92.                     . "<table style=\"background: " . $bgcolor1 . ";border: 1px solid " . $bgcolor3 . ";\" width=\"100%\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\">\n"
  93.                     . "<tr><td colspan=\"2\"><a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $catid . "\"><b>" . $parentcat . "</b></a></td></tr>\n"
  94.                     . "<tr><td style=\"width: 50px;background: " . $bgcolor2 . ";\" align=\"center\" valign=\"middle\">";
  95.                     if ($image != "" )
  96.                     {
  97.                         echo "<a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $catid . "\">" . img_size($image, $img_cat, $parentcat, $image_resize) . "</a>";
  98.                     }
  99.                     else
  100.                     {
  101.                         echo "<a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $catid . "\">" . img_size($img_none, $img_cat, $parentcat, $image_resize) . "</a>";
  102.                     }
  103.                     echo "</td><td style=\"height: 100%;background: " . $bgcolor2 . ";\">\n"
  104.                     . "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
  105.                     if ($parentdesc != "" ) echo "<tr><td>" . $parentdesc . "</td></tr>\n";
  106.                     echo "<tr><td>" . $nb_imgcat . "&nbsp;" . _SCREENINDB;
  107.                     if ($last_date != "" ) echo "<br />" . $last_date;
  108.                     echo "</td></tr></table></td></tr></table></td>\n";
  109.                     if ($counter == 2)
  110.                     {
  111.                         $counter = 0;
  112.                         echo "</tr>";
  113.                     }
  114.                     $last_catid = $catid;
  115.                 }
  116.             }
  117.             if ($counter == 1) echo "<td style=\"width: 50%;border: 1px solid " . $bgcolor3 . ";\">&nbsp;</td></tr>\n";
  118.             echo "</table>\n";
  119.         }
  120.     }
  121.     function categorie($cat)
  122.     {
  123.         global $nuked;
  124.         opentable();
  125.         if ($nuked['gallery_title'] != "" )
  126.         {
  127.             $title = $nuked['gallery_title'];
  128.         }
  129.         else
  130.         {
  131.             $title = _GALLERY;
  132.         }
  133.         $sql = mysql_query("SELECT titre, description, parentid FROM " . GALLERY_CAT_TABLE . " WHERE cid = '" . $cat . "'" );
  134.         list($cat_titre, $cat_desc, $parentid) = mysql_fetch_array($sql);
  135.         $cat_titre = stripslashes($cat_titre);
  136.         $cat_desc = stripslashes($cat_desc);
  137.         $cat_titre = htmlentities($cat_titre);
  138.         $cat_desc = htmlentities($cat_desc);
  139.         $cat_desc = BBcode($cat_desc);
  140.         $cat_desc = icon($cat_desc);
  141.         if ($parentid > 0)
  142.         {
  143.             $sql_parent = mysql_query("SELECT titre FROM " . GALLERY_CAT_TABLE . " WHERE cid = '" . $parentid . "'" );
  144.             list($parent_titre) = mysql_fetch_array($sql_parent);
  145.             $parent_titre = stripslashes($parent_titre);
  146.             $parent_titre = htmlentities($parent_titre);
  147.             echo "<br /><div style=\"text-align: center;\"><a href=\"index.php?file=Gallery\" style=\"text-decoration:none\"><big><b>" . $title . "</b></big></a> &gt; <a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $parentid . "\" style=\"text-decoration:none\"><big><b>" . $parent_titre . "</b></big></a> &gt; <big><b>" . $cat_titre . "</b></big></div><br />\n";
  148.         }
  149.         else
  150.         {
  151.             echo "<br /><div style=\"text-align: center;\"><a href=\"index.php?file=Gallery\" style=\"text-decoration:none\"><big><b>" . $title . "</b></big></a> &gt; <big><b>" . $cat_titre . "</b></big></div><br />\n";
  152.         }
  153.         if ($cat_desc != "" )
  154.         {
  155.             echo "<div style=\"text-align: center;\">" . $cat_desc . "</div><br />\n";
  156.         }
  157.         cat($cat);
  158.         classe($cat);
  159.        
  160.         closetable();
  161.     }
  162.     function description($sid)
  163.     {
  164.         global $nuked, $user, $visiteur, $orderby, $bgcolor1, $bgcolor2, $bgcolor3, $img_width, $image_resize;
  165.         if ($nuked['gallery_title'] != "" )
  166.         {
  167.             $title = $nuked['gallery_title'];
  168.         }
  169.         else
  170.         {
  171.             $title = _GALLERY;
  172.         }
  173.         opentable();
  174.         $upd = mysql_query("UPDATE " . GALLERY_TABLE . " SET count = count + 1 WHERE sid = '" . $sid . "'" );
  175.         $sql = mysql_query("SELECT cat, titre, description, autor, url, url_file, date, count FROM " . GALLERY_TABLE . " WHERE sid = '" . $sid . "'" );
  176.         list($cat, $titre, $description, $autor, $url, $url_file, $date, $count) = mysql_fetch_array($sql);
  177.         $titre = stripslashes($titre);
  178.         $description = stripslashes($description);
  179.         $autor = stripslashes($autor);
  180.         $titre = htmlentities($titre);
  181.         $description = htmlentities($description);
  182.         $autor = htmlentities($autor);
  183.         $name = strrchr($url, '/');
  184.         $name = substr($name, 1);
  185.         $name_enc = rawurlencode($name);
  186.         $url = str_replace($name, $name_enc, $url);
  187.         if (!$name) $name = "N/A";
  188.         if ($date) $date = strftime("%x %H:%M", $date);
  189.         else $date = "N/A";
  190.         if ($url_file != "" )
  191.         {
  192.             $button = "<br /><div style=\"text-align: center;\"><input type=\"button\" value=\"" . _DOWNFILE . "\" onclick=\"window.open('" . $url_file . "')\" /><div><br />\n";
  193.         }
  194.         else
  195.         {
  196.             $button = "<br />\n";
  197.         }
  198.         $sql2 = mysql_query("SELECT titre, parentid FROM " . GALLERY_CAT_TABLE . " WHERE cid = '" . $cat . "'" );
  199.         list($cat_name, $parentid) = mysql_fetch_array($sql2);
  200.         $cat_name = stripslashes($cat_name);
  201.         $cat_name = htmlentities($cat_name);
  202.         if ($cat == 0)
  203.         {
  204.             $category = _NONE;
  205.         }
  206.         else if ($parentid > 0)
  207.         {
  208.             $sql3 = mysql_query("SELECT titre FROM " . GALLERY_CAT_TABLE . " WHERE cid = '" . $parentid . "'" );
  209.             list($parent_name) = mysql_fetch_array($sql3);
  210.             $parent_name = stripslashes($parent_name);
  211.             $parent_name = htmlentities($parent_name);
  212.             $category = "<a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $parentid . "\">" . $parent_name . "</a> -&gt; <a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $cat . "\">" . $cat_name . "</a>";
  213.         }
  214.         else
  215.         {
  216.             $category = "<a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $cat . "\">" . $cat_name . "</a>";
  217.         }
  218.         if ($orderby == "name" )
  219.         {
  220.             $sql_next = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND titre > '" . $titre . "' ORDER BY titre LIMIT 0, 1" );
  221.             list($nextid) = mysql_fetch_array($sql_next);
  222.             $sql_last = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND titre < '" . $titre . "' ORDER BY titre DESC LIMIT 0, 1" );
  223.             list($lastid) = mysql_fetch_array($sql_last);
  224.         }
  225.         else if ($orderby == "count" )
  226.         {
  227.             $sql_next = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND count < '" . $count . "' ORDER BY count DESC LIMIT 0, 1" );
  228.             list($nextid) = mysql_fetch_array($sql_next);
  229.             $sql_last = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND count > '" . $count . "' ORDER BY count LIMIT 0, 1" );
  230.             list($lastid) = mysql_fetch_array($sql_last);
  231.         }
  232.         else if ($orderby == "note" )
  233.         {
  234.             $sql_note = mysql_query("SELECT AVG(vote) FROM " . VOTE_TABLE . " WHERE vid = '" . $sid . "' AND module = 'Gallery'" );
  235.             list($note) = mysql_fetch_array($sql_note);
  236.             $sql_next = mysql_query("SELECT L.sid, AVG(V.vote) AS note FROM " . GALLERY_TABLE . " AS L LEFT JOIN " . VOTE_TABLE . " AS V ON L.sid = V.vid AND V.module = 'Gallery' WHERE L.cat = '" . $cat . "' GROUP BY L.sid HAVING note < '" . $note . "' ORDER BY note DESC LIMIT 0, 1" );
  237.             list($nextid) = mysql_fetch_array($sql_next);
  238.             $sql_last = mysql_query("SELECT L.sid, AVG(V.vote) AS note FROM " . GALLERY_TABLE . " AS L LEFT JOIN " . VOTE_TABLE . " AS V ON L.sid = V.vid AND V.module = 'Gallery' WHERE L.cat = '" . $cat . "' GROUP BY L.sid HAVING note > '" . $note . "' ORDER BY note LIMIT 0, 1" );
  239.             list($lastid) = mysql_fetch_array($sql_last);
  240.         }
  241.         else
  242.         {
  243.             $orderby = "news";
  244.             $sql_next = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND sid < '" . $sid . "' ORDER BY sid DESC LIMIT 0, 1" );
  245.             list($nextid) = mysql_fetch_array($sql_next);
  246.             $sql_last = mysql_query("SELECT sid FROM " . GALLERY_TABLE . " WHERE cat = '" . $cat . "' AND sid > '" . $sid . "' ORDER BY sid LIMIT 0, 1" );
  247.             list($lastid) = mysql_fetch_array($sql_last);
  248.         }
  249.         if ($nextid != "" )
  250.         {
  251.             $next = "<small><a href=\"index.php?file=Gallery&amp;op=description&amp;sid=" . $nextid . "&amp;orderby=" . $orderby . "\">" . _NEXTIMG . "</a> &gt;</small>";
  252.         }
  253.         if ($lastid != "" )
  254.         {
  255.             $prev = "<small>&lt; <a href=\"index.php?file=Gallery&amp;op=description&amp;sid=" . $lastid . "&amp;orderby=" . $orderby . "\">" . _LASTIMG . "</a> &nbsp;</small>";
  256.         }
  257.         echo "<br />\n";
  258.         if ($visiteur >= admin_mod("Gallery" ))
  259.         {
  260.             echo"<script type=\"text/javascript\">\n"
  261.             ."<!--\n"
  262.             ."\n"
  263.             . "function delimg(titre, id)\n"
  264.             . "{\n"
  265.             . "if (confirm('" . _SCREENDELETE  . " '+titre+' ! " . _CONFIRM . "'))\n"
  266.             . "{document.location.href = 'index.php?file=Gallery&page=admin&op=del_screen&sid='+id;}\n"
  267.             . "}\n"
  268.             . "\n"
  269.             . "// -->\n"
  270.             . "</script>\n";
  271.             echo "<div style=\"text-align: right;\"><a href=\"index.php?file=Gallery&amp;page=admin&amp;op=edit_screen&amp;sid=" . $sid . "\"><img style=\"border: 0;\" src=\"images/edition.gif\" alt=\"\" title=\"" . _EDIT . "\" /></a>"
  272.             . "&nbsp;<a href=\"javascript:delimg('" . addslashes($titre) . "', '" . $sid . "');\"><img style=\"border: 0;\" src=\"images/delete.gif\" alt=\"\" title=\"" . _DEL . "\" /></a></div>\n";
  273.         }
  274.         echo "<br /><div style=\"text-align: center;\"><a href=\"index.php?file=Gallery\" style=\"text-decoration:none\"><big><b>" . $title . "</b></big></a></div><br />\n"
  275.     . "<table style=\"margin-left: auto;margin-right: auto;text-align: left;\" cellpadding=\"20\" cellspacing=\"0\" border=\"0\">\n"
  276.     . "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\">"
  277.     . "<a href=\"#\" onclick=\"javascript:window.open('index.php?file=Gallery&amp;nuked_nude=index&amp;op=view_screen&amp;sid=" . $sid . "','Gallery','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,width=800,height=600,top=30,left=0')\">"
  278.     . img_size($url, $img_width, _CLICTOSCREEN, $image_resize) . "</a></td></tr></table><br />\n"
  279.     . "<table style=\"margin-left: auto;margin-right: auto;text-align: left;\" width=\"90%\" cellpadding=\"3\" cellspacing=\"0\">\n"
  280.     . "<tr><td align=\"left\">" . $prev . "</td><td align=\"right\">" . $next . "</td></tr></table>\n"
  281.     . "<table style=\"margin-left: auto;margin-right: auto;text-align: left;background: " . $bgcolor2 . ";\" width=\"90%\" cellpadding=\"3\" cellspacing=\"3\" border=\"0\">\n"
  282.     . "<tr style=\"background: " . $bgcolor2 . ";\"><td style=\"border: 1px solid " . $bgcolor3 . ";\" align=\"center\"><big><b>" . $titre . "</b></big></td></tr>\n";
  283.         if ($description != "" )
  284.         {
  285.             $description = BBcode($description);
  286.             $description = icon($description);
  287.             echo "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\">" . $description . "</td></tr>\n"
  288.             . "<tr style=\"background: " . $bgcolor2 . ";\"><td>&nbsp;</td></tr>";
  289.         }
  290.         echo "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\"><b>" . _CAT . " :</b> " . $category . "</td></tr>\n";
  291.         if ($autor != "" )
  292.         {
  293.             echo "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\"><b>" . _AUTHOR . " :</b>  " . $autor . "</td></tr>\n";
  294.     }
  295.         echo "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\"><b>" . _ADDTHE . " :</b>  " . $date . "</td></tr>\n"
  296.     . "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\"><b>" . _FILENAME . " :</b> " . $name . "</td></tr>\n"
  297.     . "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\"><b>" . _SEEN . " :</b> " . $count . "&nbsp;" . _TIMES . "</td></tr>\n"
  298.     . "<tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\">";
  299.         include ("modules/Comment/index.php" );
  300.         com_index("Gallery", $sid);
  301.         echo "</td></tr><tr style=\"background: " . $bgcolor1 . ";\"><td style=\"border: 1px dashed " . $bgcolor3 . ";\">";
  302.         include ("modules/Vote/index.php" );
  303.         vote_index("Gallery", $sid);
  304.         echo "</td></tr></table>" . $button;
  305.         closetable();
  306.     }
  307.     function index()
  308.     {
  309.         global $nuked, $bgcolor1, $bgcolor2, $bgcolor3, $nb_subcat, $orderby, $p;
  310.         if ($nuked['gallery_title'] != "" )
  311.         {
  312.             $title = $nuked['gallery_title'];
  313.         }
  314.         else
  315.         {
  316.             $title = _GALLERY;
  317.         }
  318.         opentable();
  319.         echo "<br /><div style=\"text-align: center;\"><big><b>" . $title . "</b></big></div>\n"
  320.         . "<div style=\"text-align: center;\"><br />\n"
  321.         . "[  " . _INDEXGALLERY . " | "
  322.     . "<a href=\"index.php?file=Gallery&amp;op=classe&amp;orderby=news\" style=\"text-decoration: underline\">" . _NEWSIMG . "</a> | "
  323.     . "<a href=\"index.php?file=Gallery&amp;op=classe&amp;orderby=count\" style=\"text-decoration: underline\">" . _TOPIMG . "</a> | "
  324.     . "<a href=\"index.php?file=Suggest&amp;module=Gallery\" style=\"text-decoration: underline\">" . _SUGGESTIMG . "</a> ]</div><br />\n";
  325.         $sql_nbimages = mysql_query("SELECT sid FROM " . GALLERY_TABLE . "" );
  326.         $nb_images = mysql_num_rows($sql_nbimages);
  327.         $sql_nbcat = mysql_query("SELECT cid FROM " . GALLERY_CAT_TABLE . "" );
  328.         $nb_cat = mysql_num_rows($sql_nbcat);
  329.         if ($nb_cat > 0)
  330.         {
  331.             echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td>";
  332.             $sql_cat = mysql_query("SELECT cid, titre, description FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '0' ORDER BY position, titre" );
  333.             while (list($cid, $titre, $description) = mysql_fetch_array($sql_cat))
  334.             {
  335.                 $titre = stripslashes($titre);
  336.                 $description = stripslashes($description);
  337.                 $titre = htmlentities($titre);
  338.                 $description = htmlentities($description);
  339.                 $description = BBcode($description);
  340.                 $description = icon($description);
  341.                 $sql_img = mysql_query("SELECT sid, date FROM " . GALLERY_TABLE . " WHERE cat = '" . $cid . "' ORDER BY sid DESC LIMIT 0, 1" );
  342.                 $nb_imgcat = mysql_num_rows($sql_img);
  343.                 list($sid, $date) = mysql_fetch_row($sql_img);
  344.                 $sql_img_tt = mysql_query("SELECT sid FROM " . GALLERY_TABLE . ", " . GALLERY_CAT_TABLE . " WHERE cat = cid AND (parentid = '" . $cid . "' OR cid = '" . $cid . "')" );
  345.                 $nb_imgcat_tt = mysql_num_rows($sql_img_tt);
  346.                 $sql_nbcat = mysql_query("SELECT cid FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cid . "'" );
  347.                 $nb_nbcat = mysql_num_rows($sql_nbcat);
  348.                 if ($date != "" )
  349.                 {
  350.                     $date = strftime("%x", $date);
  351.                     $last_date = "" . _LASTADD . " $date";
  352.                 }
  353.                 else
  354.                 {
  355.                     $last_date = "";
  356.                 }
  357.                 echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border: 1px solid " . $bgcolor3 . ";\"><tr><td>\n"
  358.                 . "<table style=\"background: " . $bgcolor2 . ";\" width=\"100%\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\">\n"
  359.                 . "<tr><td style=\"width: 80%;background: " . $bgcolor1 . ";\"><a href=\"index.php?file=Gallery&amp;op=categorie&amp;cat=" . $cid . "\"><big><b>" . $titre . "</b></big></a></td>\n"
  360.                 . "<td style=\"width: 10%;background: " . $bgcolor1 . ";\">" . $nb_imgcat_tt . "&nbsp;" . _SCREENINDB . "</td>\n";
  361.                 if ($nb_nbcat)
  362.                 {
  363.                     echo "<td style=\"width: 10%;background: " . $bgcolor1 . ";\">" . $nb_nbcat . "&nbsp;" . _NBCAT . "</td>";
  364.                 }
  365.                 echo "</tr></table></td></tr><tr><td>";
  366.                 if ($nb_nbcat == 0)
  367.                 {
  368.                     echo "<table width=\"100%\"><tr><td>&nbsp;</td></tr><tr><td align=\"center\">" . $description . "</td></tr><tr><td>&nbsp;</td></tr></table>\n";
  369.                 }
  370.                 else
  371.                 {
  372.                     cat($cid);
  373.                 }
  374.                 echo "</td></tr></table><br />\n";
  375.             }
  376.             echo "</td></tr></table>\n";
  377.         }
  378.         else
  379.     {
  380.             echo "<br />";
  381.     }
  382.         classe("0" );
  383.        
  384.         if ($nb_cat > 0 || $nb_images > 0) echo "<br /><div style=\"text-align: center;\"><small>( <i>" . _THEREIS . "&nbsp;" . $nb_images . "&nbsp;" . _SCREENINDB . " &amp; " . $nb_cat . "&nbsp;" . _NBCAT . "&nbsp;" . _INDATABASE . "</i> )</small></div><br /><br />\n";
  385.         else echo "<div style=\"text-align: center;\">" . _NOSCREENINDB . "</div><br /><br />\n";
  386.         closetable();
  387.     }
  388.    
  389.     function classe($cat)
  390.     {
  391.     global $nuked, $p, $bgcolor1, $bgcolor2, $bgcolor3, $op, $orderby, $img_screen1, $img_screen2, $img_screen3, $image_resize;
  392.    
  393.     $nb_img_guest = $nuked['max_img'];
  394.     $nb_img_line = $nuked['max_img_line'];
  395.     if ($cat > 0)
  396.     {
  397.             $sql = mysql_query("SELECT cid FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cat . "'" );
  398.             $nb_subcat = mysql_num_rows($sql);
  399.     }
  400.     else
  401.     {
  402.             $nb_subcat = 0;
  403.     }
  404.        
  405.         if ($op == "classe" )
  406.         {
  407.             if ($nuked['gallery_title'] != "" )
  408.             {
  409.                 $title = $nuked['gallery_title'];
  410.             }
  411.             else
  412.             {
  413.                 $title = _GALLERY;
  414.             }
  415.             echo "<br /><div style=\"text-align: center;\"><big><b>" . $title . "</b></big></div>\n"
  416.             . "<div style=\"text-align: center;\"><br />\n"
  417.             . "[ <a href=\"index.php?file=Gallery\" style=\"text-decoration: underline\">" . _INDEXGALLERY . "</a> | ";
  418.             if ($orderby == "news" )
  419.             {
  420.                 echo _NEWSIMG . " | ";
  421.             }
  422.             else
  423.             {
  424.                 echo "<a href=\"index.php?file=Gallery&amp;op=classe&amp;orderby=news\" style=\"text-decoration: underline\">" . _NEWSIMG . "</a> | ";
  425.             }
  426.             if ($orderby == "count" )
  427.             {
  428.                 echo _TOPIMG . " | ";
  429.             }
  430.             else
  431.             {
  432.                 echo "<a href=\"index.php?file=Gallery&amp;op=classe&amp;orderby=count\" style=\"text-decoration: underline\">" . _TOPIMG . "</a> | ";
  433.             }
  434.             echo "<a href=\"index.php?file=Suggest&amp;module=Gallery\" style=\"text-decoration: underline\">" . _SUGGESTIMG . "</a> ]</div><br />\n";
  435.         }
  436.        
  437.         if ($cat != "" ) $where = "WHERE L.cat = '" . $cat . "'";
  438.     else $where = "";
  439.         if ($orderby == "name" )
  440.         {
  441.             $order = "ORDER BY L.titre";
  442.         }
  443.         else if ($orderby == "count" )
  444.         {
  445.             $order = "ORDER BY L.count DESC";
  446.         }
  447.         else if ($orderby == "note" )
  448.         {
  449.             $order = "ORDER BY note DESC";
  450.         }
  451.         else
  452.         {
  453.             $orderby = "news";
  454.             $order = "ORDER BY L.sid DESC";
  455.         }
  456.         $sql = mysql_query("SELECT L.sid, L.titre, L.url, L.url2, L.date, AVG(V.vote) AS note  FROM " . GALLERY_TABLE . " AS L LEFT JOIN " . VOTE_TABLE . " AS V ON L.sid = V.vid AND V.module = 'Gallery' " . $where . " GROUP BY L.sid " . $order);
  457.         $count = mysql_num_rows($sql);
  458.         if ($count > 1 && $cat != "" )
  459.         {
  460.             echo "<table style=\"margin-left: auto;margin-right: auto;text-align: left;\" width=\"90%\">\n"
  461.             . "<tr><td align=\"right\"><small>" . _ORDERBY . " : ";
  462.             if ($orderby == "news" )
  463.             {
  464.                 echo "<b>" . _DATE . "</b> | ";
  465.             }
  466.             else
  467.             {
  468.                 echo "<a href=\"index.php?file=Gallery&amp;op=" . $op . "&amp;orderby=news&amp;cat=" . $cat . "\">" . _DATE . "</a> | ";
  469.             }
  470.             if ($orderby == "name" )
  471.             {
  472.                 echo "<b>" . _NAME . "</b> | ";
  473.             }
  474.             else
  475.             {
  476.                 echo "<a href=\"index.php?file=Gallery&amp;op=" . $op . "&amp;orderby=name&amp;cat=" . $cat . "\">" . _NAME . "</a> | ";
  477.             }
  478.             if ($orderby == "count" )
  479.             {
  480.                 echo "<b>" . _TOPFILE . "</b> | ";
  481.             }
  482.             else
  483.             {
  484.                 echo "<a href=\"index.php?file=Gallery&amp;op=" . $op . "&amp;orderby=count&amp;cat=" . $cat . "\">" . _TOPFILE . "</a> | ";
  485.             }
  486.             if ($orderby == "note" )
  487.             {
  488.                 echo "<b>" . _NOTE . "</b>&nbsp;";
  489.             }
  490.             else
  491.             {
  492.                 echo "<a href=\"index.php?file=Gallery&amp;op=" . $op . "&amp;orderby=note&amp;cat=" . $cat . "\">" . _NOTE . "</a>&nbsp;";
  493.             }
  494.             echo "</small></td></tr></table>\n";
  495.         }
  496.         if ($count > 0)
  497.         {
  498.             if (!$p) $p = 1;
  499.             $start = $p * $nb_img_guest - $nb_img_guest;
  500.             echo "<table style=\"margin-left: auto;margin-right: auto;text-align: left;\" width=\"90%\" cellspacing=\"5\" cellpadding=\"10\" border=\"0\">\n"
  501.             . "<tr><td  style=\"background: " . $bgcolor1 . ";border: 1px solid " . $bgcolor3 . ";\" colspan=\"" . $nb_img_line . "\">";
  502.             if ($count > $nb_img_guest)
  503.             {
  504.                 $url_page = "index.php?file=Gallery&amp;op=" . $op . "&amp;cat=" . $cat . "&amp;orderby=" . $orderby;
  505.                 number($count, $nb_img_guest, $url_page);
  506.             }
  507.             else
  508.             {
  509.                 echo "&nbsp;";
  510.             }
  511.             echo "</td></tr>\n";
  512.             $l = 0;
  513.             $pourcent = 100 / $nb_img_line;
  514.             $seek = mysql_data_seek($sql, $start);
  515.             for($i = 0;$i < $nb_img_guest;$i++)
  516.             {
  517.                 if (list($sid, $titre, $url, $url2, $date) = mysql_fetch_row($sql))
  518.                 {
  519.                     if ($url2 != "" && $url2 != "http://" )
  520.                     {
  521.                         $img = $url2;
  522.                     }
  523.                     else
  524.                     {
  525.                         $img = $url;
  526.                     }
  527.                     if ($nb_img_line > 4)
  528.                     {
  529.                         $img_w = $img_screen3;
  530.                     }
  531.                     else if ($nb_img_line > 3)
  532.                     {
  533.                         $img_w = $img_screen2;
  534.                     }
  535.                     else
  536.                     {
  537.                         $img_w = $img_screen1;
  538.                     }
  539.                     $name = strrchr($img, '/');
  540.                     $name = substr($name, 1);
  541.                     $name_enc = rawurlencode($name);
  542.                     $img = str_replace($name, $name_enc, $img);
  543.                     $titre = stripslashes($titre);
  544.                     $titre = htmlentities($titre);
  545.                     if ($date != "" ) $alt = _ADDTHE . "&nbsp;" . strftime("%x %H:%M", $date);
  546.                     else $alt = $titre;
  547.                     if ($sid != $last_sid)
  548.                     {
  549.                         $l++;
  550.                         if ($l == 1)
  551.                         {
  552.                             echo "<tr>";
  553.                         }
  554.                         echo "<td style=\"width: " . $pourcent . "%;background: " . $bgcolor1 . ";border: 1px solid $bgcolor3;\" align=\"center\">"             
  555.                         . "<a href=\"index.php?file=Gallery&amp;op=description&amp;sid=" . $sid . "&amp;orderby=" . $orderby . "\">" . img_size($img, $img_w, $alt, $image_resize) . "</a><br />\n"
  556.                         . "<a href=\"index.php?file=Gallery&amp;op=description&amp;sid=" . $sid . "&amp;orderby=" . $orderby . "\"><b>" . $titre . "</b></a></td>\n";
  557.                         if ($l == $nb_img_line)
  558.                         {
  559.                             $l = 0;
  560.                             echo "</tr>";
  561.                         }
  562.                         $last_sid = $sid;
  563.                     }
  564.                 }
  565.             }
  566.             if ($l > 0)
  567.             {
  568.                 for ($j = $l;$j < $nb_img_line;$j++)
  569.                 {
  570.                     echo "<td style=\"width: " . $pourcent . "%;background: " . $bgcolor1 . ";border: 1px solid $bgcolor3;\">&nbsp;</td>\n";
  571.                 }
  572.                 echo "</tr>\n";
  573.             }
  574.             if ($nb_subcat == 0 && $count == 0) echo "<tr><td align=\"center\" colspan=\"$nb_img_line\">" . _NOSCREEN . "</td></tr>\n";
  575.             echo "<tr><td style=\"background: " . $bgcolor1 . ";border: 1px solid $bgcolor3;\" colspan=\"$nb_img_line\">";
  576.             if ($count > $nb_img_guest)
  577.             {
  578.                 $url_page = "index.php?file=Gallery&amp;op=" . $op . "&amp;cat=" . $cat . "&amp;orderby=" . $orderby;
  579.                 number($count, $nb_img_guest, $url_page);
  580.             }
  581.             else
  582.             {
  583.                 echo "&nbsp;";
  584.             }
  585.             echo "</td></tr></table><br />\n";
  586.         }
  587.         else
  588.         {
  589.             if ($nb_subcat == 0 && $cat > 0) echo "<div style=\"text-align: center;\"><br />" . _NOSCREEN . "</div><br /><br />\n";
  590.             if ($op == "classe" ) echo "<div style=\"text-align: center;\"><br />" . _NOSCREENINDB . "</div><br /><br />\n";
  591.         }
  592.    
  593.     }
  594.     function img_size($image, $largeur, $title, $image_resize)
  595.     {
  596.     if ($image_resize == "off" ) $test = 0;
  597.     else if (eregi("http://", $image) && $image_resize == "local" ) $test = 0;
  598.     else  $test = 1;
  599.     if (!eregi("%20", $image) && $test == 1) list($w, $h, $t, $a) = @getimagesize($image);
  600.     if ($w != "" && $w <= $largeur) $width = "width=\"" . $w . "\" ";
  601.     else $width = "width=\"" . $largeur . "\" ";
  602.     $image_resize = "<img style=\"border: 1px solid #000000;\" src=\"" . $image . "\" " . $width . "alt=\"\" title=\"" . $title . "\" />";
  603.     return($image_resize);
  604.     }
  605.     switch ($op)
  606.     {
  607.         case "view_screen":
  608.             view_screen($sid);
  609.             break;
  610.         case "description":
  611.             description($sid);
  612.             break;
  613.         case "categorie":
  614.             categorie($cat);
  615.             break;
  616.            
  617.         case "classe":
  618.             opentable();
  619.             classe($cat);
  620.             closetable();
  621.             break;
  622.         default:
  623.             index();
  624.             break;
  625.     }
  626. }
  627. else if ($level_access == -1)
  628. {
  629.     opentable();
  630.     echo "<br /><br /><div style=\"text-align: center;\">" . _MODULEOFF . "<br /><br /><a href=\"javascript:history.back()\"><b>" . _BACK . "</b></a><br /><br /></div>";
  631.     closetable();
  632. }
  633. else if ($level_access == 1 && $visiteur == 0)
  634. {
  635.     opentable();
  636.     echo "<br /><br /><div style=\"text-align: center;\">" . _USERENTRANCE . "<br /><br /><b><a href=\"index.php?file=User&amp;op=login_screen\">" . _LOGINUSER . "</a> | <a href=\"index.php?file=User&amp;op=reg_screen\">" . _REGISTERUSER . "</a></b><br /><br /></div>";
  637.     closetable();
  638. }
  639. else
  640. {
  641.     opentable();
  642.     echo "<br /><br /><div style=\"text-align: center;\">" . _NOENTRANCE . "<br /><br /><a href=\"javascript:history.back()\"><b>" . _BACK . "</b></a><br /><br /></div>";
  643.     closetable();
  644. }
  645. ?>

Répondre à Allstar27

sans voir en detail, je vois qu'il y a pas mal de requete, dont certaine qui peuvent etre evitée ou fusionnée avec d'autres
exemple:

Code :
  1. $sql = mysql_query("SELECT cid, titre, description FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cat . "'" );
  2.     $nb_subcat = mysql_num_rows($sql);
  3.         if ($nb_subcat > 0)
  4.         {
  5.             echo "<table width=\"100%\" cellspacing=\"5\" cellpadding=\"0\" border=\"0\">\n";
  6.             $sql = mysql_query("SELECT cid, titre, description FROM " . GALLERY_CAT_TABLE . " WHERE parentid = '" . $cat . "' ORDER BY position, titre" );



pareil pour la requete ou tu recuperes le titre de la catégories parente

Répondre à coca25

slt voila je ne pas tout compris*
mais si les images sont chez shack ou sur ton ftp ça ne change rien a la base sql si y il un probleme sur la base meme un point d plus ça ne marche pas la page php ="demande" a mysql"fichier txt "= adresse ex "http://www.images.fr" donc tout ça pour dire que la taille de l'image n'as rien a voir avec la lonteur de l'apercu si l'image aparait c bon t'as base a bien acheminé les info into blabla bla...enfin je vais suivre le message car je ne comprend pas le probleme a plus


Message édité par cutino989 le 08-02-2007 à 23:17:10
Répondre à cutino989

Non je parle pas du point des images! mais plutot de leur quantité.

Répondre à Allstar27

et moi j'ai donne point de trop comme ex
c sur que si tu fait une page avec 15img avec les dim=200 par 200 t'as page vas plus vite que une page de 60img avec de dim =200 par 200
c normal
que vien faire la base sql puis on parle de la base d donner mysql ça sert a quoi ton code php c le code de la table que faut poster fichier txt ex:
table_imgallstar27
into vachar blabla blabla....etc
enfin voila


Message édité par cutino989 le 08-02-2007 à 23:53:46
Répondre à cutino989

J'ai poster mon code parce que on me la demander

Répondre à Allstar27

lol
ok
cool je cherche a comprendre c tout mais si vous parler de la base mysql je me dit que le code txt de la base c mieux pour comprendre car le topic parle de sql mais si tu veux donne le code php oule code css que vas avec le php pas de probleme c ton topic man :hello: desole si je :fou:
enfin bonne continuation


Message édité par cutino989 le 09-02-2007 à 02:15:12
Répondre à cutino989

"mon problème c'est qu'a l'ouverture d'une rubrique de la gallerie c'est assez lent il faut +ou- 5 secondes pour que sa s'ouvre"
ex:
seveur web demande l'image ou serveur mysql>le serveur mysql demande a serveur shack c rapide c que du txt ou verification mais le retour c pas la meme car c tes images que le serveur envoi donc plus long

"alors que la pages téléchargement ne prend qu'une fraction de seconde"

c normal car t'envoi l'image chez le serveur shack image par image et a ton servuer sql un simple txt donc super rapide voila
si ça peux t'aider pas de petite colere entre nous cher ami a+


Message édité par cutino989 le 09-02-2007 à 12:32:07
Répondre à cutino989

"le serveur mysql demande a serveur shack"??

sur la base, y a juste les liens vers les images shack, c'est le navigateur qui s'occupe de les rapatrier, une fois la page chargée

Répondre à coca25

http://img521.imageshack.us/img521/9549/tablegalleryjg8.png

Il aura peut être bien raison parce que les liens sont dans ma table! mais meme si y'aura pas les liens j'aurai toujours autant de photo dans la table :heink:

Répondre à Allstar27

Allstar27 a écrit :

http://img521.imageshack.us/img521 [...] eryjg8.png

Il aura peut être bien raison parce que les liens sont dans ma table! mais meme si y'aura pas les liens j'aurai toujours autant de photo dans la table :heink:



j'ai un peu de mal à suivre...
qui aura raison, il y a quelqu'un qui a prédit quelque chose??

Répondre à coca25

Si j'hébergeais moi même les photo et pas passer par imagesharck?

Répondre à Allstar27

En fait, ce qui ralentit tout, c'est que ton php va chercher les tailles des images (donc fait une série de requètes sur les images).
Effectivement, les héberger toi-même accélèrerait le processus, l'autre option étant de modifier ta table et d'ajouter les infos sur les images pour que le script n'ait pas à aller les chercher à chaque fois.

Répondre à crazycat@idn

dans t'as config_nuke image ou album le addon ajouter coche cache Thumbnail pour que les image ssoi visible d l'ouverture de la page

Répondre à cutino989
Tom's Guide > Forum > Programmation > Optimiser une base de donnée
Aller à :

Il y a 577 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