Base de données Web Hosting Driven questions

  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Avril 28th, 2011, 4:31 pm

J'ai un site web qui est entraînée base de données mySQL (www_coinsupplyzone_com), mais il est si lent à charger la plupart du temps. Certaines pages prennent plus de 30 secondes à charger, tandis que d'autres fois la même page se charge en moins d'une seconde.

Je suis actuellement en utilisant "inmotionhosting" que ma compagnie d'hébergement. J'ai fait beaucoup de recherche avant de tirer sur la gâchette, mais je me demandais s'il y avait quelque chose comme une société d'hébergement qui se spécialise dans les sites par base de données? Ou s'il y avait un moyen d'aider à accélérer mon temps d'accès de base de données? Je connais un montant assez bonne sur le langage HTML et CSS, mais quand il s'agit de bases de données Im un débutant.

Toute aide sera appréciée, merci....... John
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Avril 28th, 2011, 4:31 pm

  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 28th, 2011, 5:52 pm

Vous pouvez demander à votre hébergeur si ils savent de toute raison de votre site Web est la lenteur de chargement parfois. Il pourrait y avoir beaucoup de choses qui cause votre problème, et je vais énumérer quelques-uns d'entre eux.

La première pourrait être votre hébergeur est en faute. Il est possible que votre hébergeur a trop grand nombre d'utilisateurs sur leurs serveurs qui l'amène à s'enliser parfois faisant grief. Il se peut aussi que votre hébergeur n'a pas configuré votre base de données MySQL optimale, ce qui pourrait l'amener à avoir mauvaise performance à des moments.

Le second pourrait être que vous êtes en faute. Êtes-vous créer vos propres requêtes MySQL en écrivant le code vous-même? Ou êtes-vous utiliser un logiciel qui a déjà été écrit par quelqu'un d'autre? La raison pour laquelle je demande, c'est parce que si vous n'avez pas soin d'artisanat vos requêtes SQL, vous pouvez facilement exécuter des requêtes très peu performants que des millions de documents de recherche qui prennent beaucoup de temps à exécuter. Si vous avez écrit vos propres requêtes SQL vous pouvez passer par chacun et de les exécuter dans phpMyAdmin ou quel que soit votre méthode préférée est, et de mettre le mot EXPLIQUER en face de la requête. Cela peut vous dire toutes sortes de choses du type de recherche la requête utilise, pour le nombre d'enregistrements qu'il est d'avoir à chercher partout pour vous donner ses résultats. Il peut également vous indiquer si vous n'avez pas configuré votre index correctement ce qui pourrait accélérer vos requêtes de beaucoup. Ainsi, par exemple si j'avais une requête de ce genre qui me donne un seul résultat:

SQL Code: [ Select ]
SELECT *
FROM `phpbb_posts`
WHERE `post_id` =123456
  1. SELECT *
  2. FROM `phpbb_posts`
  3. WHERE `post_id` =123456


vous pouvez trouver des informations à ce sujet en plaçant le mot expliquer à l'avant:

SQL Code: [ Select ]
EXPLAIN SELECT *
FROM `phpbb_posts`
WHERE `post_id` =123456
  1. EXPLAIN SELECT *
  2. FROM `phpbb_posts`
  3. WHERE `post_id` =123456


Votre hébergeur peut travailler avec vous pour vous aider à diagnostiquer votre problème, ou si elles ne semblent pas comme beaucoup d'aide, vous pouvez toujours passer à un hébergeur de nouveaux, tels que Ozzu gif "title =";)" alt =" Wink ">

A quelques fils à Ozzu qui peuvent être utiles:

Limites MySQL

Quels sont beaucoup de requêtes MySQL par page?

Tableau MySQL avec des millions de Plats
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Avril 28th, 2011, 6:50 pm

J'ai contacté mon hôte en ce qui concerne cette question, ils n'arrêtent pas de dire qu'il est plus probable d'un problème avec mon internet et mes charges site amende à leur fin. Qu'est-ce qui n'a pas de sens cependant, c'est que pendant le jour les pages prennent une éternité à charger, mais la nuit, ils chargent en moins d'une seconde ou deux.

J'ai fait ce qui suit dans mon panneau de contrôle d'hébergement: «Comprimer les types MIME spécifié" (text / html texte / texte / xml), mais c'est à peu près tout ce que je sais comment faire.

Je n'ai pas écrit le code moi-même, il est de mon ViArt panier qui a fait cela pour moi. Ill vérifier ces autres fils, merci.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 28th, 2011, 10:57 pm

Juste curieux, votre site Web obtenir beaucoup de trafic?

Typiquement les serveurs web ne obtenir plus occupés pendant la journée, mais si votre site ne reçoit pas une grande quantité de trafic, cela ne signifie pas quelqu'un d'autre sur votre serveur n'est pas ce qui est enlisement choses. Il est vraiment difficile de deviner sans se faire sur leur serveur et le diagnostic de ce qui se passe, il pourrait y avoir de nombreuses raisons l'origine de cette.

Comme la mesure où il est de votre connexion locale, qui est toujours aussi possible. Disons par exemple vous avez une connexion par câble, de sa possible que pendant la journée vous avez quelques personnes dans votre région qui sont utiliser en totalité la bande passante disponible ce qui rend les choses apparaissent plus lentement pour vous. Là encore, c'est toute spéculation juste, il pourrait très bien être votre hôte trop. Un bon moyen de tester cela, essayez de visiter certains sites Web d'autres lorsque votre site apparaît lente et voir si l'Internet est lent pour vous, ou tout simplement votre site Web. Si vous n'avez que votre site web, il est plus probable que votre hébergeur, ou quelque chose de mal avec votre site web.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Avril 29th, 2011, 8:34 am

Mon site ne reçoit pas plus de 20 visiteurs par jour en ce moment, il faut donc la charge du serveur pendant la journée de jouer avec moi.

Je vais voir si je peux créer des pages HTML statiques avec ma base de données qui peuvent accélérer les choses pour moi. Je n'ai que trop de requêtes en cours d'exécution par page.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 29th, 2011, 5:15 pm

Ayant trop de requêtes en cours d'exécution par page peut vraiment lent chargement d'une page vers le bas. Plusieurs fois, simplement en train de refaire vos requêtes SQL et d'essayer de rendre les choses plus efficaces, vous pouvez réduire le nombre sont en cours d'exécution par page. Par exemple, il ya longtemps Ozzu avait environ 30 appels SQL par page, et par tout refaire et plus intelligent sur la façon dont chaque requête a été appelé, je me souviens que j'étais capable de descendre à environ 10 par page, et tous de la même l'information était encore récupérées.

Spots à surveiller sont des boucles qui appellent la même requête à plusieurs reprises. Ainsi, par exemple si vous aviez un tableau de 10 valeurs dont vous voulez récupérer les résultats via SQL pour chaque valeur, vous pouvez exécuter une boucle et course de 10 des états SQL, ou vous pouvez exécuter une instruction SQL et la recherche de tous les identifiants dans cette déclaration et les mêmes résultats. Habituellement, la seconde manière est beaucoup plus efficace.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Avril 29th, 2011, 5:42 pm

Je pense que c'est exactement mon problème, mon programmeurs m'a dit que mon site a jusqu'à quelques centaines de requêtes par page. Je ne sais pas si c'est possible pour moi de "non-loop" ma base de données de raccourcir les requêtes, ou même par où commencer.

J'ai placé un exemple de la base de données que j'utilise pour mon panier sur mon ftp:

www_coinsupplyzone_com / database_example.sql

Si l'un de vous pourrait regarder et me dire si il est possible de «condenser» il, je serais très reconnaissant. Alors je peux me renseigner en détail sur la façon d'espérer réduire certains de ces requêtes.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Avril 30th, 2011, 9:55 am

Une partie du problème pourrait être la structure de votre base de données, merci pour l'affichage que. Toutefois, en général le problème pour combien de requêtes SQL que vous exécutez n'est pas dû à votre base de données elle-même, mais comment vous êtes la création de requêtes dans votre code de programmation d'accès et de récupérer les résultats de votre base de données. Avez-vous un exemple de partie du code qui s'exécute une de vos pages lente qui comprend certaines requêtes SQL?
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Avril 30th, 2011, 3:02 pm

Voici deux morceaux de code à partir de mon site. La première est d'appeler les désignations des catégories et l'autre pour appeler la liste des catégories:

Code: [ Select ]
<?php

    $desc_image = get_setting_value($vars, "category_description_image", 3);
    $desc_type = get_setting_value($vars, "category_description_type", 2);

    $sql = " SELECT * ";
    $sql .= " FROM " . $table_prefix . "categories ";
    $sql .= " WHERE category_id = " . $db->tosql($category_id, INTEGER);
    $db->query($sql);
    if ($db->next_record())
    {
        $category_name = get_translation($db->f("category_name"));
        $description = "";
        if ($desc_type == 2) {
            $description = get_translation($db->f("full_description"));
        } elseif ($desc_type == "full_description_2" || $desc_type == "full_description2") {
            $description = get_translation($db->f("full_description_2"));
        } elseif ($desc_type == 1) {
            $description = get_translation($db->f("short_description"));
        } elseif ($desc_type == "feature_1" || $desc_type == "feature1") {
            $description = get_translation($db->f("feature_1"));
        } elseif ($desc_type == "feature_2" || $desc_type == "feature2") {
            $description = get_translation($db->f("feature_2"));
        } elseif ($desc_type == "feature_3" || $desc_type == "feature3") {
            $description = get_translation($db->f("feature_3"));
        } elseif ($desc_type == "feature_4" || $desc_type == "feature4") {
            $description = get_translation($db->f("feature_4"));
        } elseif ($desc_type == "feature_5" || $desc_type == "feature5") {
            $description = get_translation($db->f("feature_5"));
        } elseif ($desc_type == "feature_6" || $desc_type == "feature6") {
            $description = get_translation($db->f("feature_6"));
        } elseif ($desc_type == "feature_7" || $desc_type == "feature7") {
            $description = get_translation($db->f("feature_7"));
        }
        $image = ""; $image_alt = "";
        if ($desc_image == 3) {
            $image   = $db->f("image_large");
            $image_alt = get_translation($db->f("image_large_alt"));
        } elseif ($desc_image == 2) {
            $image   = $db->f("image");
            $image_alt = get_translation($db->f("image_alt"));
        }

        if (!strlen($image)) {
            $image_exists = false;
        } elseif (!image_exists($image)) {
            $image_exists = false;
        } else {
            $image_exists = true;
        }

        if (strlen($description) || $image_exists)
        {
            $html_template = get_setting_value($block, "html_template", "block_category_description.html");
         $t->set_file("block_body", $html_template);

            if ($image_exists) {
                if (preg_match("/^http\:\/\//", $image)) {
                    $image_size = "";
                } else {
                    $image_size = @GetImageSize($image);
                    if (isset($restrict_categories_images) && $restrict_categories_images) { $image = "image_show.php?category_id=".$category_id."&type=large"; }
                }
                if (!strlen($image_alt)) { $image_alt = $category_name; }
                $t->set_var("alt", htmlspecialchars($image_alt));
                $t->set_var("src", htmlspecialchars($image));
                if (is_array($image_size)) {
                    $t->set_var("width", "width=\"" . $image_size[0] . "\"");
                    $t->set_var("height", "height=\"" . $image_size[1] . "\"");
                } else {
                    $t->set_var("width", "");
                    $t->set_var("height", "");
                }
                $t->sparse("image_large_block", false);
            } else {
                $t->set_var("image_large_block", "");
            }
     
            $t->set_var("category_name", $category_name);
            $t->set_var("full_description", $description);

            $block_parsed = true;
            $t->parse("block_body", false);
        }
    }

?>
  1. <?php
  2.     $desc_image = get_setting_value($vars, "category_description_image", 3);
  3.     $desc_type = get_setting_value($vars, "category_description_type", 2);
  4.     $sql = " SELECT * ";
  5.     $sql .= " FROM " . $table_prefix . "categories ";
  6.     $sql .= " WHERE category_id = " . $db->tosql($category_id, INTEGER);
  7.     $db->query($sql);
  8.     if ($db->next_record())
  9.     {
  10.         $category_name = get_translation($db->f("category_name"));
  11.         $description = "";
  12.         if ($desc_type == 2) {
  13.             $description = get_translation($db->f("full_description"));
  14.         } elseif ($desc_type == "full_description_2" || $desc_type == "full_description2") {
  15.             $description = get_translation($db->f("full_description_2"));
  16.         } elseif ($desc_type == 1) {
  17.             $description = get_translation($db->f("short_description"));
  18.         } elseif ($desc_type == "feature_1" || $desc_type == "feature1") {
  19.             $description = get_translation($db->f("feature_1"));
  20.         } elseif ($desc_type == "feature_2" || $desc_type == "feature2") {
  21.             $description = get_translation($db->f("feature_2"));
  22.         } elseif ($desc_type == "feature_3" || $desc_type == "feature3") {
  23.             $description = get_translation($db->f("feature_3"));
  24.         } elseif ($desc_type == "feature_4" || $desc_type == "feature4") {
  25.             $description = get_translation($db->f("feature_4"));
  26.         } elseif ($desc_type == "feature_5" || $desc_type == "feature5") {
  27.             $description = get_translation($db->f("feature_5"));
  28.         } elseif ($desc_type == "feature_6" || $desc_type == "feature6") {
  29.             $description = get_translation($db->f("feature_6"));
  30.         } elseif ($desc_type == "feature_7" || $desc_type == "feature7") {
  31.             $description = get_translation($db->f("feature_7"));
  32.         }
  33.         $image = ""; $image_alt = "";
  34.         if ($desc_image == 3) {
  35.             $image   = $db->f("image_large");
  36.             $image_alt = get_translation($db->f("image_large_alt"));
  37.         } elseif ($desc_image == 2) {
  38.             $image   = $db->f("image");
  39.             $image_alt = get_translation($db->f("image_alt"));
  40.         }
  41.         if (!strlen($image)) {
  42.             $image_exists = false;
  43.         } elseif (!image_exists($image)) {
  44.             $image_exists = false;
  45.         } else {
  46.             $image_exists = true;
  47.         }
  48.         if (strlen($description) || $image_exists)
  49.         {
  50.             $html_template = get_setting_value($block, "html_template", "block_category_description.html");
  51.          $t->set_file("block_body", $html_template);
  52.             if ($image_exists) {
  53.                 if (preg_match("/^http\:\/\//", $image)) {
  54.                     $image_size = "";
  55.                 } else {
  56.                     $image_size = @GetImageSize($image);
  57.                     if (isset($restrict_categories_images) && $restrict_categories_images) { $image = "image_show.php?category_id=".$category_id."&type=large"; }
  58.                 }
  59.                 if (!strlen($image_alt)) { $image_alt = $category_name; }
  60.                 $t->set_var("alt", htmlspecialchars($image_alt));
  61.                 $t->set_var("src", htmlspecialchars($image));
  62.                 if (is_array($image_size)) {
  63.                     $t->set_var("width", "width=\"" . $image_size[0] . "\"");
  64.                     $t->set_var("height", "height=\"" . $image_size[1] . "\"");
  65.                 } else {
  66.                     $t->set_var("width", "");
  67.                     $t->set_var("height", "");
  68.                 }
  69.                 $t->sparse("image_large_block", false);
  70.             } else {
  71.                 $t->set_var("image_large_block", "");
  72.             }
  73.      
  74.             $t->set_var("category_name", $category_name);
  75.             $t->set_var("full_description", $description);
  76.             $block_parsed = true;
  77.             $t->parse("block_body", false);
  78.         }
  79.     }
  80. ?>


Code: [ Select ]
<?php

    include_once("./includes/products_functions.php");

    include_once("./messages/" . $language_code . "/cart_messages.php");
    include_once("./messages/" . $language_code . "/reviews_messages.php");
    include_once("./messages/" . $language_code . "/download_messages.php");

    $user_id = get_session("session_user_id");        
    $user_info = get_session("session_user_info");
    $user_type_id = get_setting_value($user_info, "user_type_id", "");

    $friendly_urls = get_setting_value($settings, "friendly_urls", 0);
    $friendly_extension = get_setting_value($settings, "friendly_extension", "");
    $columns = get_setting_value($vars, "categories_columns", 1);
    $categories_type = get_setting_value($vars, "categories_type");

    $category_id = get_param("category_id");
    $search_category_id = get_param("search_category_id");
    $search_string = get_param("search_string");
    $is_search = strlen($search_string);

    if ($is_search && $search_category_id) { $category_id = $search_category_id; }

    $item_id = get_param("item_id");
    if (!strlen($category_id)) {
        if (strlen($item_id)) {
            $category_id = get_db_value("SELECT category_id FROM " . $table_prefix . "items_categories where item_id=".$db->tosql($item_id, INTEGER));
        } else {
            $category_id = "0";
        }
    }

    $category_id = intval($category_id);
    
    $t->set_var("products_href",  get_custom_friendly_url("products.php"));
    $t->set_var("list_href",    get_custom_friendly_url("products.php"));
    $t->set_var("details_href",   get_custom_friendly_url("product_details.php"));
    $t->set_var("top_category_name",PRODUCTS_TITLE);
    $t->set_var("category_rss", "");

    $list_page = get_custom_friendly_url("products.php");
    $list_url = new VA_URL($list_page);

    $categories_image = get_setting_value($vars, "categories_image");
    
    if ($categories_type == 1 || $categories_type == 2) {
        if (file_exists("images/".$settings["style_name"]."/category_image.gif")) {
            $image_tree_top = "images/".$settings["style_name"]."/category_image.gif";
        } else {
            $image_tree_top = "images/category_image.gif";
        }
        $html_template = get_setting_value($block, "html_template", "block_categories_catalog.html");
     $t->set_file("block_body", $html_template);
        $t->set_var("catalog_sub",     "");
        $t->set_var("catalog_sub_more",  "");
        $t->set_var("catalog_rows",    "");
        $t->set_var("catalog_top",     "");
        $t->set_var("catalog_description", "");

        $categories_ids = VA_Categories::find_all_ids("c.parent_category_id=" . $db->tosql($category_id, INTEGER), VIEW_CATEGORIES_PERM);
        if (!$categories_ids) return;
        $allowed_categories_ids = VA_Categories::find_all_ids("c.parent_category_id=" . $db->tosql($category_id, INTEGER), VIEW_CATEGORIES_ITEMS_PERM);
                
        if ($categories_type == 2) {
            $sub_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")", VIEW_CATEGORIES_PERM);
            if (!$sub_categories_ids)
                $categories_type = 1;
        }

        if ($categories_type == 1) {
            $sql = " SELECT category_id AS top_category_id, category_name AS top_category_name, a_title AS top_a_title, ";
            $sql .= " short_description, friendly_url AS top_friendly_url, ";
            $sql .= " image, image_alt, image_large, image_large_alt ";
            $sql .= " FROM " . $table_prefix . "categories ";
            $sql .= " WHERE category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")";    
            $sql .= " ORDER BY category_order, category_name ";
        } else {
            // show categories as catalog
            $allowed_sub_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")", VIEW_CATEGORIES_ITEMS_PERM);                        
            $sql = " SELECT c.category_id AS top_category_id,c.category_name AS top_category_name, ";
            $sql .= " c.friendly_url AS top_friendly_url, c.a_title AS top_a_title, ";
            $sql .= " c.image, c.image_alt, c.image_large, c.image_large_alt, ";
            $sql .= " s.category_id AS sub_category_id,s.category_name AS sub_category_name, ";
            $sql .= " s.friendly_url AS sub_friendly_url, s.a_title AS sub_a_title ";
            $sql .= " FROM (" . $table_prefix . "categories c ";
            $sql .= " LEFT JOIN " . $table_prefix . "categories s ";            
            if ($sub_categories_ids) {
                $sql .= " ON (c.category_id=s.parent_category_id ";            
                $sql .= " AND s.category_id IN (" . $db->tosql($sub_categories_ids, INTEGERS_LIST) . ")))";
            } else {
                $sql .= " ON c.category_id=s.parent_category_id) ";            
            }
            $sql .= " WHERE c.category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")";
            $sql .= " ORDER BY c.category_order, c.category_name, c.category_id, s.category_order, s.category_name ";
        }
        $db->query($sql);
        if ($db->next_record()) {
            $category_number = 0;
            $is_subcategories = true;
            $shown_sub_categories = get_setting_value($vars, "categories_subs");
            $catalog_top_number = 0;
            $catalog_sub_number = 0;
            $column_width = intval(100 / $columns);
            $t->set_var("column_width", $column_width . "%");
            do {
                $category_number++;
                $catalog_sub_number++;
                $top_category_id = $db->f("top_category_id");
                $top_category_name = get_translation($db->f("top_category_name"));
                $top_a_title = get_translation($db->f("top_a_title"));
                $top_friendly_url = $db->f("top_friendly_url");
                $sub_category_id = $db->f("sub_category_id");
                $sub_category_name = get_translation($db->f("sub_category_name"));
                $sub_a_title = get_translation($db->f("sub_a_title"));
                $sub_friendly_url = $db->f("sub_friendly_url");
                if ($categories_image == 2) {
                    $category_image = $db->f("image");
                    $image_alt = get_translation($db->f("image_alt"));
                } else if ($categories_image == 3) {
                    $category_image = $db->f("image_large");
                    $image_alt = get_translation($db->f("image_large_alt"));
                } else {
                    $category_image = $image_tree_top;
                    $image_alt = get_translation($db->f("image_alt"));
                }
    
                $t->set_var("catalog_top_id", $top_category_id);
                $t->set_var("catalog_top_name", htmlspecialchars($top_category_name));
                $t->set_var("top_a_title", htmlspecialchars($top_a_title));
                if ($categories_type == 2){
                    $t->set_var("catalog_sub_id",  $sub_category_id);
                    $t->set_var("catalog_sub_name", htmlspecialchars($sub_category_name));
                    $t->set_var("sub_a_title", htmlspecialchars($sub_a_title));
                } else {
                     if (strlen($db->f("short_description"))) {
                        $t->set_var("short_description", get_translation($db->f("short_description")));
                        $t->parse("catalog_description", false);
                    } else {
                        $t->set_var("catalog_description", "");
                    }
                }
    
                $is_next_record = $db->next_record();
                $is_new_top = ($top_category_id != $db->f("top_category_id"));
    
                if ($categories_type == 2){
                    if (intval($shown_sub_categories) >= $catalog_sub_number || $shown_sub_categories == 0)
                    {
                        if ($sub_category_id && (!$allowed_sub_categories_ids || !in_array($sub_category_id, $allowed_sub_categories_ids))) {
                            $t->set_var("restricted_sub_class", " restrictedSubCategory");
                            $t->sparse("restricted_sub_image", false);
                        } else {
                            $t->set_var("restricted_sub_class", "");
                            $t->set_var("restricted_sub_image", "");
                        }
                        if ($friendly_urls && $sub_friendly_url) {
                            $list_url->remove_parameter("category_id");
                            $t->set_var("list_url", htmlspecialchars($list_url->get_url($sub_friendly_url. $friendly_extension)));
                        } else {
                            $list_url->add_parameter("category_id", CONSTANT, $sub_category_id);
                            $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
                        }
    
                        if ($category_id == $sub_category_id) {
                            $t->set_var("class_sub_selected", "selectedsubCategory");
                        } else {
                            $t->set_var("class_sub_selected", "subCategory");
                        }
                            
                        if ($is_next_record && !$is_new_top) {
                            $t->parse("catalog_sub_separator", false);
                        } else {
                            $t->set_var("catalog_sub_separator", "");
                        }
                        $t->parse("catalog_sub", true);
                    } elseif (($shown_sub_categories + 1) == $catalog_sub_number) {
                        if ($friendly_urls && $top_friendly_url) {
                            $list_url->remove_parameter("category_id");
                            $t->set_var("list_url", htmlspecialchars($list_url->get_url($top_friendly_url . $friendly_extension)));
                        } else {
                            $list_url->add_parameter("category_id", CONSTANT, $top_category_id);
                            $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
                        }
    
                        $t->parse("catalog_sub_more", false);
                    }
                }
    
                if ($is_new_top) {
                    $catalog_top_number++;
    
                    if ($friendly_urls && $top_friendly_url) {
                        $list_url->remove_parameter("category_id");
                        $t->set_var("list_url", htmlspecialchars($list_url->get_url($top_friendly_url . $friendly_extension)));
                    } else {
                        $list_url->add_parameter("category_id", CONSTANT, $top_category_id);
                        $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
                    }
    
                    if ($category_image)
                    {
                        if (preg_match("/^http\:\/\//", $category_image)) {
                            $image_size = "";
                        } else {
                            $image_size = @GetImageSize($category_image);
                            if (isset($restrict_categories_images) && $restrict_categories_images) {
                                $category_image = "image_show.php?category_id=".$top_category_id;
                            }
                        }
                        if (!strlen($image_alt)) { $image_alt = $top_category_name; }
                            $t->set_var("alt", htmlspecialchars($image_alt));
                            $t->set_var("src", htmlspecialchars($category_image));
                        if (is_array($image_size)) {
                            $t->set_var("width", "width=\"" . $image_size[0] . "\"");
                            $t->set_var("height", "height=\"" . $image_size[1] . "\"");
                        } else {
                            $t->set_var("width", "");
                            $t->set_var("height", "");
                        }
                        $t->parse("catalog_image", false);
                    } else {
                        $t->set_var("catalog_image", "");
                    }
    
                    if (!$allowed_categories_ids || !in_array($top_category_id, $allowed_categories_ids)) {
                        $t->set_var("restricted_class", " restrictedCategory");
                        $t->sparse("restricted_image", false);
                    } else {
                        $t->set_var("restricted_class", "");
                        $t->set_var("restricted_image", "");
                    }
                    
                    if ($category_id == $top_category_id) {
                        $t->set_var("class_top_selected", "selectedtopCategory");
                    } else {
                        $t->set_var("class_top_selected", "topCategory");
                    }                        
                        
                    $t->parse("catalog_top");
                    $t->set_var("catalog_sub", "");
                    $t->set_var("catalog_sub_more", "");
                    if ($catalog_top_number % $columns == 0) {
                        $t->parse("catalog_rows");
                        $t->set_var("catalog_top", "");
                    }
                    $catalog_sub_number = 0;
                }
    
            } while ($is_next_record);
    
            if ($catalog_top_number % $columns != 0) {
                $t->parse("catalog_rows");
            }
    
            $block_parsed = true;
            $t->parse("block_body", false);
        }
    } else if ($categories_type == 5) {
        // chained list type
        $is_ajax = get_param("is_ajax");
        $level = get_param("level");
        $pcategory = get_param("pcategory");
        if (!$pcategory) { $pcategory = 0; }

        $categories = array();

        $sql = " SELECT category_id, category_name FROM " . $table_prefix . "categories ";
        $sql .= " WHERE parent_category_id=" . $db->tosql($pcategory, INTEGER);
        $sql .= " ORDER BY category_order ";
        $db->query($sql);
        if ($db->next_record())    {
            do {
                $category_id = $db->f("category_id");
                $categories[$category_id] = get_translation($db->f("category_name"));
            } while ($db->next_record());
        }
        
        if ($is_ajax) {
            // json_encode for PHP4
            if (sizeof($categories) > 0) {
                echo "{";
                foreach($categories as $category_id => $category_name) {
                    echo '"' . $category_id . '":';
                    echo '"' . str_replace('"', '\"', $category_name) . '",';
                }
                echo "}";
            }
            exit;
        } else {
        
            $html_template = get_setting_value($block, "html_template", "block_categories_chained_menu.html");
         $t->set_file("block_body", $html_template);
            $t->set_var("products_href", get_custom_friendly_url("products.php"));
        
            foreach($categories as $category_id => $category_name) {
                $t->set_var("category_id", $category_id);    
                $t->set_var("category_name", htmlspecialchars($category_name));
                $t->parse("category_option");
            }
 
            $block_parsed = true;
            $t->parse("block_body", false);
        }

    } else {// list type
        $html_template = get_setting_value($block, "html_template", "block_categories_list.html");
     $t->set_file("block_body", $html_template);
        $t->set_var("categories_rows", "");
        $t->set_var("categories",   "");

        $active_category_path = "0";
        $not = false;
        if ($categories_type == 4) { // Tree-type structure
            $sql = " SELECT category_path ";
            $sql .= " FROM " . $table_prefix . "categories ";
            $sql .= " WHERE category_id=" . $db->tosql($category_id, INTEGER);
            $db->query($sql);
            if ($db->next_record()) {
                $active_category_path = $db->f("category_path");
                $active_category_path .= $category_id;
            }
            $categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($active_category_path, INTEGERS_LIST) . ")", VIEW_CATEGORIES_PERM);
            $allowed_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($active_category_path, INTEGERS_LIST) . ")", VIEW_CATEGORIES_ITEMS_PERM);
        } else {
            $not = true;
            $categories_ids     = VA_Categories::find_all_ids(array('not' => 1), VIEW_CATEGORIES_PERM);
            $allowed_categories_ids = VA_Categories::find_all_ids(array('not' => 1), VIEW_CATEGORIES_ITEMS_PERM);
        }

        if (!$not && !$categories_ids) return;
        
        $categories = array();
        $sql = " SELECT category_id, category_name, a_title, friendly_url, ";
        $sql .= " short_description, image, image_alt, image_large, image_large_alt, parent_category_id ";        
        $sql .= " FROM " . $table_prefix . "categories ";
        if ($not) {
            if ($categories_ids) {
                $sql .= " WHERE category_id NOT IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ") ";
            }
            $sql .= " ORDER BY parent_category_id, category_order, category_name ";
            $db->RecordsPerPage = 1000;
        } else {
            $sql .= " WHERE category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ") ";
            $sql .= " ORDER BY category_order, category_name ";
        }
        $db->query($sql);
        while ($db->next_record()) {
            $cur_category_id = $db->f("category_id");
            $category_name = get_translation($db->f("category_name"));
            $a_title = get_translation($db->f("a_title"));
            $friendly_url = $db->f("friendly_url");
            $short_description = get_translation($db->f("short_description"));

            $image = $db->f("image");
            $image_alt = get_translation($db->f("image_alt"));
            $parent_category_id = $db->f("parent_category_id");
            $categories[$cur_category_id]["parent_id"] = $parent_category_id;
            $categories[$cur_category_id]["category_name"] = $category_name;
            $categories[$cur_category_id]["a_title"] = $a_title;
            $categories[$cur_category_id]["friendly_url"] = $friendly_url;
            $categories[$cur_category_id]["short_description"] = $short_description;
            $categories[$cur_category_id]["image"] = $image;
            $categories[$cur_category_id]["image_alt"] = $image_alt;
            $categories[$cur_category_id]["image_large"] = $db->f("image_large");
            $categories[$cur_category_id]["image_large_alt"] = get_translation($db->f("image_large_alt"));
            if ($not) {
                if ($allowed_categories_ids && in_array($cur_category_id, $allowed_categories_ids)) {
                    $categories[$cur_category_id]["allowed"] = false;
                } else {
                    $categories[$cur_category_id]["allowed"] = true;
                }
            } else {
                if (!$allowed_categories_ids || !in_array($cur_category_id, $allowed_categories_ids)) {
                    $categories[$cur_category_id]["allowed"] = false;
                } else {
                    $categories[$cur_category_id]["allowed"] = true;
                }
            }
            $categories[$parent_category_id]["subs"][] = $cur_category_id;
        }

        if (sizeof($categories) > 0 && isset($categories[0]))
        {
            $category_number = 0;
            $column_width = intval(100 / $columns);
            $t->set_var("column_width", $column_width . "%");

            set_categories(0, 0, $columns, 0, $categories_image);

            if ($category_number % $columns != 0) {
                $t->parse("categories_rows");
            }

            $block_parsed = true;
            $t->parse("block_body", false);
        }
    }


?>
  1. <?php
  2.     include_once("./includes/products_functions.php");
  3.     include_once("./messages/" . $language_code . "/cart_messages.php");
  4.     include_once("./messages/" . $language_code . "/reviews_messages.php");
  5.     include_once("./messages/" . $language_code . "/download_messages.php");
  6.     $user_id = get_session("session_user_id");        
  7.     $user_info = get_session("session_user_info");
  8.     $user_type_id = get_setting_value($user_info, "user_type_id", "");
  9.     $friendly_urls = get_setting_value($settings, "friendly_urls", 0);
  10.     $friendly_extension = get_setting_value($settings, "friendly_extension", "");
  11.     $columns = get_setting_value($vars, "categories_columns", 1);
  12.     $categories_type = get_setting_value($vars, "categories_type");
  13.     $category_id = get_param("category_id");
  14.     $search_category_id = get_param("search_category_id");
  15.     $search_string = get_param("search_string");
  16.     $is_search = strlen($search_string);
  17.     if ($is_search && $search_category_id) { $category_id = $search_category_id; }
  18.     $item_id = get_param("item_id");
  19.     if (!strlen($category_id)) {
  20.         if (strlen($item_id)) {
  21.             $category_id = get_db_value("SELECT category_id FROM " . $table_prefix . "items_categories where item_id=".$db->tosql($item_id, INTEGER));
  22.         } else {
  23.             $category_id = "0";
  24.         }
  25.     }
  26.     $category_id = intval($category_id);
  27.     
  28.     $t->set_var("products_href",  get_custom_friendly_url("products.php"));
  29.     $t->set_var("list_href",    get_custom_friendly_url("products.php"));
  30.     $t->set_var("details_href",   get_custom_friendly_url("product_details.php"));
  31.     $t->set_var("top_category_name",PRODUCTS_TITLE);
  32.     $t->set_var("category_rss", "");
  33.     $list_page = get_custom_friendly_url("products.php");
  34.     $list_url = new VA_URL($list_page);
  35.     $categories_image = get_setting_value($vars, "categories_image");
  36.     
  37.     if ($categories_type == 1 || $categories_type == 2) {
  38.         if (file_exists("images/".$settings["style_name"]."/category_image.gif")) {
  39.             $image_tree_top = "images/".$settings["style_name"]."/category_image.gif";
  40.         } else {
  41.             $image_tree_top = "images/category_image.gif";
  42.         }
  43.         $html_template = get_setting_value($block, "html_template", "block_categories_catalog.html");
  44.      $t->set_file("block_body", $html_template);
  45.         $t->set_var("catalog_sub",     "");
  46.         $t->set_var("catalog_sub_more",  "");
  47.         $t->set_var("catalog_rows",    "");
  48.         $t->set_var("catalog_top",     "");
  49.         $t->set_var("catalog_description", "");
  50.         $categories_ids = VA_Categories::find_all_ids("c.parent_category_id=" . $db->tosql($category_id, INTEGER), VIEW_CATEGORIES_PERM);
  51.         if (!$categories_ids) return;
  52.         $allowed_categories_ids = VA_Categories::find_all_ids("c.parent_category_id=" . $db->tosql($category_id, INTEGER), VIEW_CATEGORIES_ITEMS_PERM);
  53.                 
  54.         if ($categories_type == 2) {
  55.             $sub_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")", VIEW_CATEGORIES_PERM);
  56.             if (!$sub_categories_ids)
  57.                 $categories_type = 1;
  58.         }
  59.         if ($categories_type == 1) {
  60.             $sql = " SELECT category_id AS top_category_id, category_name AS top_category_name, a_title AS top_a_title, ";
  61.             $sql .= " short_description, friendly_url AS top_friendly_url, ";
  62.             $sql .= " image, image_alt, image_large, image_large_alt ";
  63.             $sql .= " FROM " . $table_prefix . "categories ";
  64.             $sql .= " WHERE category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")";    
  65.             $sql .= " ORDER BY category_order, category_name ";
  66.         } else {
  67.             // show categories as catalog
  68.             $allowed_sub_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")", VIEW_CATEGORIES_ITEMS_PERM);                        
  69.             $sql = " SELECT c.category_id AS top_category_id,c.category_name AS top_category_name, ";
  70.             $sql .= " c.friendly_url AS top_friendly_url, c.a_title AS top_a_title, ";
  71.             $sql .= " c.image, c.image_alt, c.image_large, c.image_large_alt, ";
  72.             $sql .= " s.category_id AS sub_category_id,s.category_name AS sub_category_name, ";
  73.             $sql .= " s.friendly_url AS sub_friendly_url, s.a_title AS sub_a_title ";
  74.             $sql .= " FROM (" . $table_prefix . "categories c ";
  75.             $sql .= " LEFT JOIN " . $table_prefix . "categories s ";            
  76.             if ($sub_categories_ids) {
  77.                 $sql .= " ON (c.category_id=s.parent_category_id ";            
  78.                 $sql .= " AND s.category_id IN (" . $db->tosql($sub_categories_ids, INTEGERS_LIST) . ")))";
  79.             } else {
  80.                 $sql .= " ON c.category_id=s.parent_category_id) ";            
  81.             }
  82.             $sql .= " WHERE c.category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ")";
  83.             $sql .= " ORDER BY c.category_order, c.category_name, c.category_id, s.category_order, s.category_name ";
  84.         }
  85.         $db->query($sql);
  86.         if ($db->next_record()) {
  87.             $category_number = 0;
  88.             $is_subcategories = true;
  89.             $shown_sub_categories = get_setting_value($vars, "categories_subs");
  90.             $catalog_top_number = 0;
  91.             $catalog_sub_number = 0;
  92.             $column_width = intval(100 / $columns);
  93.             $t->set_var("column_width", $column_width . "%");
  94.             do {
  95.                 $category_number++;
  96.                 $catalog_sub_number++;
  97.                 $top_category_id = $db->f("top_category_id");
  98.                 $top_category_name = get_translation($db->f("top_category_name"));
  99.                 $top_a_title = get_translation($db->f("top_a_title"));
  100.                 $top_friendly_url = $db->f("top_friendly_url");
  101.                 $sub_category_id = $db->f("sub_category_id");
  102.                 $sub_category_name = get_translation($db->f("sub_category_name"));
  103.                 $sub_a_title = get_translation($db->f("sub_a_title"));
  104.                 $sub_friendly_url = $db->f("sub_friendly_url");
  105.                 if ($categories_image == 2) {
  106.                     $category_image = $db->f("image");
  107.                     $image_alt = get_translation($db->f("image_alt"));
  108.                 } else if ($categories_image == 3) {
  109.                     $category_image = $db->f("image_large");
  110.                     $image_alt = get_translation($db->f("image_large_alt"));
  111.                 } else {
  112.                     $category_image = $image_tree_top;
  113.                     $image_alt = get_translation($db->f("image_alt"));
  114.                 }
  115.     
  116.                 $t->set_var("catalog_top_id", $top_category_id);
  117.                 $t->set_var("catalog_top_name", htmlspecialchars($top_category_name));
  118.                 $t->set_var("top_a_title", htmlspecialchars($top_a_title));
  119.                 if ($categories_type == 2){
  120.                     $t->set_var("catalog_sub_id",  $sub_category_id);
  121.                     $t->set_var("catalog_sub_name", htmlspecialchars($sub_category_name));
  122.                     $t->set_var("sub_a_title", htmlspecialchars($sub_a_title));
  123.                 } else {
  124.                      if (strlen($db->f("short_description"))) {
  125.                         $t->set_var("short_description", get_translation($db->f("short_description")));
  126.                         $t->parse("catalog_description", false);
  127.                     } else {
  128.                         $t->set_var("catalog_description", "");
  129.                     }
  130.                 }
  131.     
  132.                 $is_next_record = $db->next_record();
  133.                 $is_new_top = ($top_category_id != $db->f("top_category_id"));
  134.     
  135.                 if ($categories_type == 2){
  136.                     if (intval($shown_sub_categories) >= $catalog_sub_number || $shown_sub_categories == 0)
  137.                     {
  138.                         if ($sub_category_id && (!$allowed_sub_categories_ids || !in_array($sub_category_id, $allowed_sub_categories_ids))) {
  139.                             $t->set_var("restricted_sub_class", " restrictedSubCategory");
  140.                             $t->sparse("restricted_sub_image", false);
  141.                         } else {
  142.                             $t->set_var("restricted_sub_class", "");
  143.                             $t->set_var("restricted_sub_image", "");
  144.                         }
  145.                         if ($friendly_urls && $sub_friendly_url) {
  146.                             $list_url->remove_parameter("category_id");
  147.                             $t->set_var("list_url", htmlspecialchars($list_url->get_url($sub_friendly_url. $friendly_extension)));
  148.                         } else {
  149.                             $list_url->add_parameter("category_id", CONSTANT, $sub_category_id);
  150.                             $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
  151.                         }
  152.     
  153.                         if ($category_id == $sub_category_id) {
  154.                             $t->set_var("class_sub_selected", "selectedsubCategory");
  155.                         } else {
  156.                             $t->set_var("class_sub_selected", "subCategory");
  157.                         }
  158.                             
  159.                         if ($is_next_record && !$is_new_top) {
  160.                             $t->parse("catalog_sub_separator", false);
  161.                         } else {
  162.                             $t->set_var("catalog_sub_separator", "");
  163.                         }
  164.                         $t->parse("catalog_sub", true);
  165.                     } elseif (($shown_sub_categories + 1) == $catalog_sub_number) {
  166.                         if ($friendly_urls && $top_friendly_url) {
  167.                             $list_url->remove_parameter("category_id");
  168.                             $t->set_var("list_url", htmlspecialchars($list_url->get_url($top_friendly_url . $friendly_extension)));
  169.                         } else {
  170.                             $list_url->add_parameter("category_id", CONSTANT, $top_category_id);
  171.                             $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
  172.                         }
  173.     
  174.                         $t->parse("catalog_sub_more", false);
  175.                     }
  176.                 }
  177.     
  178.                 if ($is_new_top) {
  179.                     $catalog_top_number++;
  180.     
  181.                     if ($friendly_urls && $top_friendly_url) {
  182.                         $list_url->remove_parameter("category_id");
  183.                         $t->set_var("list_url", htmlspecialchars($list_url->get_url($top_friendly_url . $friendly_extension)));
  184.                     } else {
  185.                         $list_url->add_parameter("category_id", CONSTANT, $top_category_id);
  186.                         $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
  187.                     }
  188.     
  189.                     if ($category_image)
  190.                     {
  191.                         if (preg_match("/^http\:\/\//", $category_image)) {
  192.                             $image_size = "";
  193.                         } else {
  194.                             $image_size = @GetImageSize($category_image);
  195.                             if (isset($restrict_categories_images) && $restrict_categories_images) {
  196.                                 $category_image = "image_show.php?category_id=".$top_category_id;
  197.                             }
  198.                         }
  199.                         if (!strlen($image_alt)) { $image_alt = $top_category_name; }
  200.                             $t->set_var("alt", htmlspecialchars($image_alt));
  201.                             $t->set_var("src", htmlspecialchars($category_image));
  202.                         if (is_array($image_size)) {
  203.                             $t->set_var("width", "width=\"" . $image_size[0] . "\"");
  204.                             $t->set_var("height", "height=\"" . $image_size[1] . "\"");
  205.                         } else {
  206.                             $t->set_var("width", "");
  207.                             $t->set_var("height", "");
  208.                         }
  209.                         $t->parse("catalog_image", false);
  210.                     } else {
  211.                         $t->set_var("catalog_image", "");
  212.                     }
  213.     
  214.                     if (!$allowed_categories_ids || !in_array($top_category_id, $allowed_categories_ids)) {
  215.                         $t->set_var("restricted_class", " restrictedCategory");
  216.                         $t->sparse("restricted_image", false);
  217.                     } else {
  218.                         $t->set_var("restricted_class", "");
  219.                         $t->set_var("restricted_image", "");
  220.                     }
  221.                     
  222.                     if ($category_id == $top_category_id) {
  223.                         $t->set_var("class_top_selected", "selectedtopCategory");
  224.                     } else {
  225.                         $t->set_var("class_top_selected", "topCategory");
  226.                     }                        
  227.                         
  228.                     $t->parse("catalog_top");
  229.                     $t->set_var("catalog_sub", "");
  230.                     $t->set_var("catalog_sub_more", "");
  231.                     if ($catalog_top_number % $columns == 0) {
  232.                         $t->parse("catalog_rows");
  233.                         $t->set_var("catalog_top", "");
  234.                     }
  235.                     $catalog_sub_number = 0;
  236.                 }
  237.     
  238.             } while ($is_next_record);
  239.     
  240.             if ($catalog_top_number % $columns != 0) {
  241.                 $t->parse("catalog_rows");
  242.             }
  243.     
  244.             $block_parsed = true;
  245.             $t->parse("block_body", false);
  246.         }
  247.     } else if ($categories_type == 5) {
  248.         // chained list type
  249.         $is_ajax = get_param("is_ajax");
  250.         $level = get_param("level");
  251.         $pcategory = get_param("pcategory");
  252.         if (!$pcategory) { $pcategory = 0; }
  253.         $categories = array();
  254.         $sql = " SELECT category_id, category_name FROM " . $table_prefix . "categories ";
  255.         $sql .= " WHERE parent_category_id=" . $db->tosql($pcategory, INTEGER);
  256.         $sql .= " ORDER BY category_order ";
  257.         $db->query($sql);
  258.         if ($db->next_record())    {
  259.             do {
  260.                 $category_id = $db->f("category_id");
  261.                 $categories[$category_id] = get_translation($db->f("category_name"));
  262.             } while ($db->next_record());
  263.         }
  264.         
  265.         if ($is_ajax) {
  266.             // json_encode for PHP4
  267.             if (sizeof($categories) > 0) {
  268.                 echo "{";
  269.                 foreach($categories as $category_id => $category_name) {
  270.                     echo '"' . $category_id . '":';
  271.                     echo '"' . str_replace('"', '\"', $category_name) . '",';
  272.                 }
  273.                 echo "}";
  274.             }
  275.             exit;
  276.         } else {
  277.         
  278.             $html_template = get_setting_value($block, "html_template", "block_categories_chained_menu.html");
  279.          $t->set_file("block_body", $html_template);
  280.             $t->set_var("products_href", get_custom_friendly_url("products.php"));
  281.         
  282.             foreach($categories as $category_id => $category_name) {
  283.                 $t->set_var("category_id", $category_id);    
  284.                 $t->set_var("category_name", htmlspecialchars($category_name));
  285.                 $t->parse("category_option");
  286.             }
  287.  
  288.             $block_parsed = true;
  289.             $t->parse("block_body", false);
  290.         }
  291.     } else {// list type
  292.         $html_template = get_setting_value($block, "html_template", "block_categories_list.html");
  293.      $t->set_file("block_body", $html_template);
  294.         $t->set_var("categories_rows", "");
  295.         $t->set_var("categories",   "");
  296.         $active_category_path = "0";
  297.         $not = false;
  298.         if ($categories_type == 4) { // Tree-type structure
  299.             $sql = " SELECT category_path ";
  300.             $sql .= " FROM " . $table_prefix . "categories ";
  301.             $sql .= " WHERE category_id=" . $db->tosql($category_id, INTEGER);
  302.             $db->query($sql);
  303.             if ($db->next_record()) {
  304.                 $active_category_path = $db->f("category_path");
  305.                 $active_category_path .= $category_id;
  306.             }
  307.             $categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($active_category_path, INTEGERS_LIST) . ")", VIEW_CATEGORIES_PERM);
  308.             $allowed_categories_ids = VA_Categories::find_all_ids("c.parent_category_id IN (" . $db->tosql($active_category_path, INTEGERS_LIST) . ")", VIEW_CATEGORIES_ITEMS_PERM);
  309.         } else {
  310.             $not = true;
  311.             $categories_ids     = VA_Categories::find_all_ids(array('not' => 1), VIEW_CATEGORIES_PERM);
  312.             $allowed_categories_ids = VA_Categories::find_all_ids(array('not' => 1), VIEW_CATEGORIES_ITEMS_PERM);
  313.         }
  314.         if (!$not && !$categories_ids) return;
  315.         
  316.         $categories = array();
  317.         $sql = " SELECT category_id, category_name, a_title, friendly_url, ";
  318.         $sql .= " short_description, image, image_alt, image_large, image_large_alt, parent_category_id ";        
  319.         $sql .= " FROM " . $table_prefix . "categories ";
  320.         if ($not) {
  321.             if ($categories_ids) {
  322.                 $sql .= " WHERE category_id NOT IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ") ";
  323.             }
  324.             $sql .= " ORDER BY parent_category_id, category_order, category_name ";
  325.             $db->RecordsPerPage = 1000;
  326.         } else {
  327.             $sql .= " WHERE category_id IN (" . $db->tosql($categories_ids, INTEGERS_LIST) . ") ";
  328.             $sql .= " ORDER BY category_order, category_name ";
  329.         }
  330.         $db->query($sql);
  331.         while ($db->next_record()) {
  332.             $cur_category_id = $db->f("category_id");
  333.             $category_name = get_translation($db->f("category_name"));
  334.             $a_title = get_translation($db->f("a_title"));
  335.             $friendly_url = $db->f("friendly_url");
  336.             $short_description = get_translation($db->f("short_description"));
  337.             $image = $db->f("image");
  338.             $image_alt = get_translation($db->f("image_alt"));
  339.             $parent_category_id = $db->f("parent_category_id");
  340.             $categories[$cur_category_id]["parent_id"] = $parent_category_id;
  341.             $categories[$cur_category_id]["category_name"] = $category_name;
  342.             $categories[$cur_category_id]["a_title"] = $a_title;
  343.             $categories[$cur_category_id]["friendly_url"] = $friendly_url;
  344.             $categories[$cur_category_id]["short_description"] = $short_description;
  345.             $categories[$cur_category_id]["image"] = $image;
  346.             $categories[$cur_category_id]["image_alt"] = $image_alt;
  347.             $categories[$cur_category_id]["image_large"] = $db->f("image_large");
  348.             $categories[$cur_category_id]["image_large_alt"] = get_translation($db->f("image_large_alt"));
  349.             if ($not) {
  350.                 if ($allowed_categories_ids && in_array($cur_category_id, $allowed_categories_ids)) {
  351.                     $categories[$cur_category_id]["allowed"] = false;
  352.                 } else {
  353.                     $categories[$cur_category_id]["allowed"] = true;
  354.                 }
  355.             } else {
  356.                 if (!$allowed_categories_ids || !in_array($cur_category_id, $allowed_categories_ids)) {
  357.                     $categories[$cur_category_id]["allowed"] = false;
  358.                 } else {
  359.                     $categories[$cur_category_id]["allowed"] = true;
  360.                 }
  361.             }
  362.             $categories[$parent_category_id]["subs"][] = $cur_category_id;
  363.         }
  364.         if (sizeof($categories) > 0 && isset($categories[0]))
  365.         {
  366.             $category_number = 0;
  367.             $column_width = intval(100 / $columns);
  368.             $t->set_var("column_width", $column_width . "%");
  369.             set_categories(0, 0, $columns, 0, $categories_image);
  370.             if ($category_number % $columns != 0) {
  371.                 $t->parse("categories_rows");
  372.             }
  373.             $block_parsed = true;
  374.             $t->parse("block_body", false);
  375.         }
  376.     }
  377. ?>


S'il vous plaît laissez-moi savoir si ce n'est pas ce que vous faisiez allusion. Merci.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mai 1st, 2011, 6:22 pm

Sont les deux ci-dessus pages PHP séparés? ou tout ce qui pourrait être appelé sur un chargement de la page unique?

À première vue, il est difficile de dire que je ne pense pas que ceux-ci sont en aucune façon la création de 200 requêtes par page. Ils ne semblent pas être en boucles ni quoi que ce soit. Il est possible que quelques-uns d'entre eux pourraient être combinés encore, mais une autre optimisation qui pourrait aider serait de vérifier les indices sur eux pour faire en sorte que les recherches sont rapides.

Voyez-vous un code qui a des requêtes SQL dans une sorte de boucle while, ou pour la boucle sur une de vos pages? Je pense que quelque part sur votre page que vous avez une sorte de boucle avec des requêtes SQL à l'intérieur qui est vraiment votre requêtes SQL pour accéder à la haute portée de 200.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • johnlynches
  • Novice
  • Novice
  • No Avatar
  • Inscription: Déc 20, 2010
  • Messages: 15
  • Status: Offline

Message Mai 2nd, 2011, 9:21 am

pages Theyre se séparent pas, mais des morceaux d'une page qui se charge. Chaque page que j'ai a beaucoup de «sections» de ces derniers qui doit charger. Je ne vois pas de boucles dans les pages, mais là encore je ne sais pas vraiment ce qu'est une boucle ressemblerait si elle m'a giflé au visage.

Afficher de l'information

  • Total des messages de ce sujet: 11 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 54 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC