Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
17 Oct 2008, 06:57
Message
#1
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Salut à tous
Voilà, j'ai remarqué que l'on ne peux pas faire certaine requêtes dans les pages qui exploite la classe splitPageResults. Dans -> catalog/includes/classes/split_page_results.php En premier il y a la mise en forme qui coince : Pas possible de mettre en MAJUSCULE certaine instructions (comme SELECT, FROM, WHERE, etc ...), il faut mettre tout en minuscule (la casse a une importance), puis ne pas faire de saut de ligne (ou retour chariot), de faire des tabulations. Pour ce problème un sujet et des solutions ont été trouvés Mais maintenant il y a un autre problème, c'est qu'il n'est pas permis de faire une requête avec un group by ou un distinct, et peut être d'autres choses, qui sait. Cette classe splitPageResults fait des traitements assez spécifiques qui fait que la requête par en vrille Je vient de trouver une solution, mais je dirais c'est un peu du vite fait, mais ça en est une malgré tout. Cependant, si vous avez des solutions différentes pour résoudre ceci, et bien à vos codes -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Oct 2008, 07:03
Message
#2
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Code basé d'une MS2-2RC1-FR-W3C-3
Code a modifié du split_page_result.php : (ligne ~ 13) Code /* class constructor */ function splitPageResults($query, $max_rows, $count_key = '*', $page_holder = 'page', $sql_special = false) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $this->sql_query = $query; $this->page_name = $page_holder; if (isset($HTTP_GET_VARS[$page_holder])) { $page = $HTTP_GET_VARS[$page_holder]; } elseif (isset($HTTP_POST_VARS[$page_holder])) { $page = $HTTP_POST_VARS[$page_holder]; } else { $page = ''; } if (empty($page) || !is_numeric($page)) $page = 1; $this->current_page_number = $page; $this->number_of_rows_per_page = $max_rows; // Exécute une requête spéciale if ($sql_special === true) { $count_query = tep_db_query($this->sql_query); $this->number_of_rows = tep_db_num_rows($count_query); } else { $pos_to = strlen($this->sql_query); $pos_from = strpos($this->sql_query, ' from', 0); $pos_group_by = strpos($this->sql_query, ' group by', $pos_from); if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; $pos_having = strpos($this->sql_query, ' having', $pos_from); if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; $pos_order_by = strpos($this->sql_query, ' order by', $pos_from); if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; if (strpos($this->sql_query, 'distinct') || strpos($this->sql_query, 'group by')) { $count_string = 'distinct ' . tep_db_input($count_key); } else { $count_string = tep_db_input($count_key); } $count_query = tep_db_query("select count(" . $count_string . ") as total " . substr($this->sql_query, $pos_from, ($pos_to - $pos_from))); $count = tep_db_fetch_array($count_query); $this->number_of_rows = $count['total']; } $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page); if ($this->current_page_number > $this->number_of_pages) { $this->current_page_number = $this->number_of_pages; } $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1)); $this->sql_query .= " limit " . max($offset, 0) . ", " . $this->number_of_rows_per_page; } Pour exploiter ceci, il faut modifier légèrement le code de la page où ce trouve la requête en question. A titre d'exemple : dans ->catalog/products_new.php (ligne ~ 57) Code ... code ... En fait il faut juste rajouter les 3 derniers paramètres quand on initialise cette classe splitPageResults, et surtout mettre à true le dernier.$products_new_split = new splitPageResults($products_new_query_raw, MAX_DISPLAY_PRODUCTS_NEW, '', 'page', true); ... suite code etc ... Ceci va éviter quasi tous les traitement effectués dans la requête. Il y aura juste un code de rajouter à la fin. Exemple : .... code _de_la_requête .... limit 10, 20 -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Oct 2008, 13:56
Message
#3
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
SAlut Shoprun,
ET bien limite tu pauses le problèmes ... et tu donnes la recette ! terrible... j'essaie cela de suite petite erreur de code.. je regarde ce que c'est : Code Parse error: syntax error, unexpected ';', expecting T_FUNCTION in D:\www\includes\classes\split_page_results.php on line 83 sauf que ligne 83, ce le ?> de sortie .. donc ca se passe avant [edit]Non c'est résolu, je me doutais bien que le code que tu nous donne ne peut avoir d'erreur direct.. donc en regadant de plus pres tout est ok j'avais tout bonnement remplacé le fichier. il manquait donc tout le reste en dessous. Et bien BRAVOO tout fonctionne c'est la fete merci pour cet aide bien précieuse, et ta rapidité ! A plus ... Ce message a été modifié par padaben - 17 Oct 2008, 14:27. -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
17 Oct 2008, 14:15
Message
#4
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Citation reste à modifier tout cela dans les pages qui apellent la classe spli_page Non, il y a pas lieux de modifier quoi que ce soit dans tous les fichiers, mais uniquement là où il a une spécificité. Ce code, cette modif de la classe fonctionne dans toutes les pages sans avoir à faire de modification dans les fichiers. C'est uniquement lorsqu'on a une requête spécifique (avec un group by ou distinct) ou cette fois il faudra faire la modification dans le fichier où ce trouve cette requête spécifique, c'est tout. C'est juste fait pour gérer des cas particuliers. Tu en a un -> le products_new.php -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Oct 2008, 14:21
Message
#5
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
Citation reste à modifier tout cela dans les pages qui apellent la classe spli_page Non, il y a pas lieux de modifier quoi que ce soit dans les fichiers. Ce code, cette modif est juste faite ok la réponse y est Ce message a été modifié par padaben - 17 Oct 2008, 14:26. -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
24 Oct 2008, 10:15
Message
#6
|
|
|
Ceinture marron OSC Groupe : Membres Messages : 1447 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
|
|
|
24 Oct 2008, 10:49
Message
#7
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
salut ,
ouep ca a l'air pas mal, mais la solution de Shoprun fonctionne aussi. A voir si quelqu'un essaie de comparer les deux. je n'ai pas le temps pour le moment... Pour moi c'est résolu Bon code Ce message a été modifié par padaben - 24 Oct 2008, 10:50. -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
27 Oct 2008, 07:16
Message
#8
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Salut Phocea
Je t'avoue que je n'avais pas fait de recherche, et donc je ne savait pas qu'un contribution existait, et de plus par tes soins En passant : Je pense que cette ligne est de trop (mini erreur je pense) : Code $this->count_query = "select count(*) from (select count(" . $count_string . ")" . substr($this->sql_query, $pos_from).") as SubQ1"; Il y a donc à ce jours 2 solutions. L'avantage de ta solution c'est qu'elle demande aucune intervention dans les pages qui ont cette spécificité dans la requête (groupe by). Donc juste mettre à jour la classe splitPageResults, ça mérite d'être souligné. L'avantage de ma solution, c'est quelle résout 2 problèmes, le problème du "group by" mais aussi celui de la "casse" et autres sauts de lignes qu'il pourrait y avoir dans la requête. En gros, la mise en forme de la requête. Mis à part ça, faudrait faire des essais sur la performance de l'une et l'autre, ça pourrait avoir son importance, qui sait. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
29 Oct 2008, 10:19
Message
#9
|
|
|
Ceinture marron OSC Groupe : Membres Messages : 1447 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Pas de soucis, comem tu le vois j ai fait ca il y a un bail sutie a un bug trouvé dans la contrin affiliation ou il y a des requetes avec group by.
Bref je me rappelle plus trop non plus ce que j'avais changé mais comme tu dis il faudrait tester pour voir les perfs,. Enfin, si les 2 solutions fonctionnent c'est le principal |
|
|
6 Nov 2008, 13:43
Message
#10
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
SAlut à vous,
Je réouvre quelque peu ce post pour une petite précision. J'aimerai pouvoir limiter le nombre de nouveaux produits total affichés. j'ai consulté ce post et une bonne partie du forum sans succès. je pense que c'est quelque chose à modifier dans ce code de split page result pour permettre cela. En fait, j'ai bien la ligne : Code $products_new_split = new splitPageResults($newProducts, MAX_DISPLAY_PRODUCTS_NEW, '', 'page', true); Cependant MAX_DISPLAY_PRODUCTS_NEW correspond au nombre de produit par page et non total. j'ai fait une recherche dans la bdd pour MAX_DISPLAY_NEW_PRODUCT, j'ai bien une entrée correspondante, mais nulle part dans mon code je ne trouve l'endoit où le préciser. j'ai tenté de l'ajouter à la fin de la requete pour newProducts, mais vu que split_page_result ajoute une limite pour le nombre par page, cela fait doublon. et donc erreur de sql. J'ai tenté quelques modifs dans la page split_page_results sans succès. alors je me tourne donc vers vous pour avoir quelque solution ou précision MErci A plus tard -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
25 Nov 2008, 15:48
Message
#11
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
SAlut tous, Salut Shoprun,
me voilà de nouveau par là pour effectuer cette modif du nombre total de résultat que notre classe split_page_result nous sort. Donc j'ouvre la classe concernée, qui a été modifiée par Shoprun pour prendre en compte les bugs connus. J'essaie donc de comprendre tout ce code ajouté et de trouver l'endroit où modifier mon nbre_total par ex j'ai 150 nouveaux produits, j'affiche 10 produits par page, j'optiens donc 15 pageS. ! Or cela fait beaucoup trop pour mes nouveaux produits, je voudrais donc limiter les résultats à par exemple 2 pages donc 20 produits ! il me faut donc trouver où limiter le nombre maximum de produits puis afficher se nombre dans la ligne prévue à cette effet sur le frontEnd ! Donc pour l'avancement, j'ai réussi à limiter l'affichage du nombre à 20, puis le nombre de pages disponibles pour l'affichage du pager. mais la quantité de produits affichés dans ces pages ne correspond pas avec le nbre affiché ! pour réaliser cette modif j'ai remplacé : ligne 46 du split_page_result.php modifié par shoprun : Code //$this->number_of_rows = tep_db_num_rows($count_query); $this->number_of_rows = 20; mais je ne sais si cela modifie réellement comme il se doit... juste, je peux dire que le résultat est là, mais s'applique à toutes les utilisations de split_page... grand regret ! m'en vais voir ailleurs comment faire ! A + -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
25 Nov 2008, 15:54
Message
#12
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
re
oui il est nécessaire que je regarde plus cela . ca ne fonctionne pas du tout en réel. si je trie par un autre ordre, j'ai des produits qui n'étaient pas dans la 1ere sélection !!! pfff, ca ne va pas du tout ! bon j'y retourne Ce message a été modifié par padaben - 25 Nov 2008, 15:56. -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
25 Nov 2008, 16:02
Message
#13
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Hello
Si tu utilise la méthode que je donne, théoriquement tu devrais pouvoir faire une requête du genre : SQL SELECT les_champs FROM la_table WHERE le_champ='la_clause' LIMITE 0, 20 Donc en rajoutant directement la limite, le nombre de lignes en faite.Ca donne quoi en faisant ainsi ? -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
25 Nov 2008, 16:07
Message
#14
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
SAlut SHoprun,
j'avais déjà essayé il me semble puisque c'est ce qui est le plus rapide ! j'obtiens une erreur : voilà la requète, j'ai peut-etre fait une erreur en ajoutant la limit Code 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 0, 9' at line 1 select p.products_id, pd.products_name, p.products_image, pd.products_info, p.products_price, p.products_tax_class_id, p.products_date_added, cd.categories_name from products p,categories_description cd, categories c, products_to_categories p2c, products_description pd where c.categories_status=1 and p.products_id = p2c.products_id and c.categories_id = p2c.categories_id and cd.categories_id = c.categories_id and p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '1' group by pd.products_name order by p.products_price ASC, p.products_date_added DESC LIMIT 0,20 un peu coincé en fait ! qu'en dis tu ? [edit] En fait en lisant l'erreur , je vois sur la 1ere ligne : near 'limit 0,9' et que je limite dans ma requete à 20. 9 est en fait le nombre de produits que j'affiche par page. et 20 ou plutot 27 mais c'est pareil pour le test, le nombre max de résultats toutes pages confondues. donc il se peut que l'erreur vienne de là, que j'ai une 1ere limite à 9 puis une autre limite ajoutée à 20, et 2 limites dans la meme requete pause un pb ! [/edit] Ce message a été modifié par padaben - 25 Nov 2008, 16:10. -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
25 Nov 2008, 17:37
Message
#15
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Ouais, c'est idiot mon histoire de rajouté le limite dans la requête vu quelle que c'est rajouté (une nouvelle fois) dans la claase splitMachinchouette.
Bon, je vois pas du tout ou ça coince, toujours est qu'une partie du calcul à l'air d'être bon, comme le nombre de ligne par page, après, faut voir ce qui va pas. Faudrait que tu fasse des echo, donc tu tu affiche dans ton code certaines variables clés, pour justement détecter ou est l'erreur. Dans la classe split*** par exemple comme ceci : Code $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page); Ici, c'est ce qui sera affiché dans ta page en 1er, car exécuté en 1er, donc vérifie si les valeur sont logiques, celles attendues.// Ajouté echo '(split) number_of_rows : '.$this->number_of_rows.'<br />'; echo '(split)number_of_pages : '.$this->number_of_pages.'<br />'; // if ($this->current_page_number > $this->number_of_pages) { $this->current_page_number = $this->number_of_pages; } $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1)); $this->sql_query .= " limit " . max($offset, 0) . ", " . $this->number_of_rows_per_page; // Ajouté echo '(split)max(offset) : '.max($offset, 0).'<br />'; echo '(split)number_of_rows_per_page : '.$this->number_of_rows_per_page.'<br />'; // Après, faudrait que tu fasse la même chose dans ta page, et pour accéder à ces mêmes valeurs faut remplacer le $this par le nom de ta classe, mais je ne sais pas son nom, mais ça devrait être un nom du genre : $products_new_split Ce qui donnerait par exemple : Code echo '(page) number_of_row : '.$products_new_split->number_of_row.'<br />'; echo '(page) number_of_pages : '.$products_new_split->number_of_pages.'<br />'; Faudrait placer ces echo dans ta page, mais pas n'importe où. Faut savoir que les chose se font en 2 temps, en premier tu initialise (ou déclenche) cette classe, la requête ce fait une première fois dans la classe split***. Ensuite, dans ta page tu déclenche une seconde fois la requête, avec : tep_db_query($products_new_split->sql_query) C'est surtout avant celle ci qu'il faut être attentif, donc mettre les echo. Mais tu peux en mettre juste avant, et aussi après, et tu analyse le tout. En tout cas efforce toi de juste détecter ou est l'erreur, quelle est la variable qui à un moment donné n'a pas la bonne valeur. Je te cache pas que ce splitMachinChouette me casse les bonbons, car il est mal conçu depuis le début, ce truc est tordu, faut tout revoir normalement. Sérieux, c'est du n'importe quoi leur histoire de découpage de la requête via des code Php, il aurait été mieux de traiter ça séparément via des méthodes bien distinct et selon la structure d'une requête. Comme par exemple créer des méthodes : function select(), function from(), function where(), function groupby(), function orderby(), function limit() M'enfin ... Aussi, la solution de Phocea est loin d'être mauvaise, et je suis certain que c'est celle ci qui est la plus rapide en terme de performance, mais j'ai jamais testé. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
25 Nov 2008, 17:46
Message
#16
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
MERci pour tes infos,
je regarde cela dès que possible. Voir aussi effectivement la solution de Phocea, peut etre que dans sa soluce il y a moyen facilement de régler cette histoire de nbre max ! peut-etre lui pauser la question , Phocea , es tu par là ? rires... A plus tard et merci -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
27 Nov 2008, 14:01
Message
#17
|
|
|
Ceinture marron OSC Groupe : Membres Messages : 1447 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Bein il faut pas se prendre la tete:
cherche la ligne $this->number_of_rows = $count['total']; change la par: $this->number_of_rows = XXX; Ensuite je pense qu'il faudrait ajouter une variable à la fonction splitPageResults pour lui passer le total et si il est initialisé ne pas faire les requetes qui s'occupe de trouver le total |
|
|
27 Nov 2008, 14:07
Message
#18
|
|
|
Ceinture marron OSC Groupe : Membres Messages : 1447 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Bpn en fait comme ca:
Code function splitPageResults($query, $max_rows, $count_key = '*', $page_holder = 'page', $count_total = '') {
global $HTTP_GET_VARS, $HTTP_POST_VARS; $this->sql_query = $query; //EC - added variable to hold lower-case version of passed in query $this->poscheck_query = strtolower($query); $this->page_name = $page_holder; preg_match("/(-c-|-m-).*\.html/", $_SERVER['REQUEST_URI'], $this->mypage); if($this->mypage[1] != NULL) { preg_match("/-fd-(\d*)\.html/", $_SERVER['REQUEST_URI'], $matches); $page = $matches[1]; } else { if (isset($HTTP_GET_VARS[$page_holder])) { $page = $HTTP_GET_VARS[$page_holder]; } elseif (isset($HTTP_POST_VARS[$page_holder])) { $page = $HTTP_POST_VARS[$page_holder]; } else { $page = ''; } } if (empty($page) || !is_numeric($page)) $page = 1; $this->current_page_number = $page; $this->number_of_rows_per_page = $max_rows; $pos_to = strlen($this->sql_query); //EC - commented out original, replaced with check on lowercase query // $pos_from = strpos($this->sql_query, ' from', 0); $pos_from = strpos($this->poscheck_query, ' from', 0); $pos_group_by = strpos($this->sql_query, ' group by', $pos_from); //EC - commented out original, replaced with check on lowercase query //$pos_group_by = strpos($this->sql_query, ' group by', $pos_from); $pos_group_by = strpos($this->poscheck_query, ' group by', $pos_from); if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; //EC - commented out original, replaced with check on lowercase query //$pos_having = strpos($this->sql_query, ' having', $pos_from); $pos_having = strpos($this->poscheck_query, ' having', $pos_from); if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; //EC - commented out original, replaced with check on lowercase query //$pos_order_by = strpos($this->sql_query, ' order by', $pos_from); $pos_order_by = strpos($this->poscheck_query, ' order by', $pos_from); if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; //EC - commented out original, replaced with check on lowercase query //if (strpos($this->sql_query, 'distinct') || strpos($this->sql_query, 'group by')) { // Phocea - Added condition on the count_key since count(distinct *) return an error in mysql!! if (strpos($this->poscheck_query, 'distinct') || strpos($this->poscheck_query, 'group by') && $count_key != '*') { $count_string = 'distinct ' . tep_db_input($count_key); } else { $count_string = tep_db_input($count_key); } // Phocea - IF we have a group by we need to count how many groups are being returned and not simply the individual // rows returned. So we wrap the original query around a count. if ($count_total == "") { if (strpos($this->poscheck_query, 'group by')) { $count_query = tep_db_query("select count(*) as total from (select count(" . $count_string . ")" . substr($this->sql_query, $pos_from) .") as SubQ1"); } else { $count_query = tep_db_query("select count(" . $count_string . ") as total " . substr($this->sql_query, $pos_from, ($pos_to - $pos_from))); } $count = tep_db_fetch_array($count_query); $this->count_query = $count_query; $this->number_of_rows = $count['total']; } else { $this->number_of_rows = $count_total; } $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page); if ($this->current_page_number > $this->number_of_pages) { $this->current_page_number = $this->number_of_pages; } $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1)); if ($offset < 0) { $offset = 0;} $this->sql_query .= " limit " . $offset . ", " . $this->number_of_rows_per_page; } |
|
|
27 Nov 2008, 14:32
Message
#19
|
|
![]() Ceinture verte OSC Groupe : Membres Messages : 727 Inscrit : 5-September 06 Lieu : MonPellIer Membre no 11926 |
Salut Phocea,
Merci pour ce code, si je comprend bien il faut que je parte de ta version de modif de split page result. il me semble de mémoire que tu en as fait une contrib. je vais donc aller voir de ce coté là pour mettre cela en place en remplacement de ce qu'a fait Shoprun... dans un 1er temps. puis je vais adapter ce code pour limiter le nombre max. toutefois si j'ai bien compris la procédure, je pense que cela ne devrait pas etre trop compliqué ! Je reviens dès que j'ai avancé : Merci A + -------------------- @++ All,
PadaBen MS2.2 (stable)+Admin Account with Access Level V2.3 - Admin Dhtml Menu - fckeditorV2 By Delaballe - Infinit Images light By Paddybl - Featured_Products_v1.5.9 - OrderCheck V2.5.1- Login box V5.4 - Menu tabs V2.0 modifiée - Scrolling Header modifié - Related_products_4_0 - (autologin 1.0.8-->pas sûr) - AntiRobotRegistrationValidation2.6 - enable_disable_categories_1.4 - AJAX AttributeManager V2.5 beta - What's new scroll - Pdf Invoice - ultimate SEo Urls V 2.1 - Meta Tag Controller V1.0 - Agree2Terms V.1.6.7 - SiteMap-MS2-2.3 - Stats Sales Report 2 + cvs - Stats_customers_orders_v1.2b.2 - colissimo 1.2.3 - Traking colissimo By Mrmicro - FAQDeskV1.1 - Newsletter product 2.0 + Opt-Out/Unsubscribe Newsletter - html_tell_a_friend - PayPal IPN v2.2 - Atos 5.00-2.2.3 - E-transactions - [WAMP5-XPSP2] - [celeonet] --> en standby : os6tm_banner_manager_1.0 + modif Flash **** Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher! (Les Shadoks) **** |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 23rd May 2013 - 03:32 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |