Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
| Guest_asocom_* |
13 Aug 2007, 12:18
Message
#1
|
|
Invité |
je n'arrive pas a trouver ou est cette requete sql:
CODE 1064 - Erreur de syntaxe près de 'SELECT p.products_image, pd.products_name, p.products_id, p.man' à la ligne 1 select count(p.products_id) as total SELECT p.products_image, pd.products_name, p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price FROM products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c WHERE p.products_status = '1' AND p.products_id = p2c.products_id AND pd.products_id = p2c.products_id AND pd.language_id = '4' AND p2c.categories_id = '5' c'est lorsque j'essaye d'afficher le listing des produits au niveau des sous categories Merci d'avance. |
|
|
13 Aug 2007, 13:48
Message
#2
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Salut
Cette requête est d'abord construite dans index.php, mais c'est la classe split_page_result qui reconstitue celle ci. Tout cela pour connaître et pouvoir afficher le nombre de résultat, suivant, précédant, ... Mais en quoi cette requête te traquasse ? -------------------- 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 |
|
|
| Guest_asocom_* |
13 Aug 2007, 14:27
Message
#3
|
|
Invité |
elle me tracasse parcequ'elle me provoque une erreur
1064 - Erreur de syntaxe près de 'SELECT p.products_image, pd.products_name, p.products_id, p.man' à la ligne 1 select count(p.products_id) as total SELECT p.products_image, pd.products_name, p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price FROM products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c WHERE p.products_status = '1' AND p.products_id = p2c.products_id AND pd.products_id = p2c.products_id AND pd.language_id = '4' AND p2c.categories_id = '5' [TEP STOP] et que je n'arrive meme pas a ciblé ou je dois la corriger donc si tu pouvait m'aider je serais tres tres reconnaissant |
|
|
13 Aug 2007, 16:29
Message
#4
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
T'as 2 select !!! select count(p.products_id) as total SELECT p.products_image, p |
|
|
13 Aug 2007, 19:02
Message
#5
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Pffff, sorry, j'avais vu.
Bon, ben sais pas trop si c'est cela, de plus plus je me suis jamais trop attardé ce que faisait ce split_page_result, mais il me semble avoir déjà eu ce genre d'erreurs. Faut totalement éviter les MAJUSCULES dans la requête, du moins pour toutes ces instructions : select, distinct, from, where, group by, order by, limit. Et aussi il faut totalement éviter les sauts de lignes. Bref, ce split_page_result reconstitue la requête en recherchant toutes ces instructions par leur position. D'où le respect de la casse et les sauts de lignes. Dans ton code je vois le where et le from en majuscule. Remplace cela pour voir. -------------------- 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 |
|
|
13 Aug 2007, 19:35
Message
#6
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Non, la casse sur les ordres SQL n'intervient pas dans une requete....
D'ailleurs, sur le site de Mysql, toutes les ordres SQL sont en majuscules. |
|
|
13 Aug 2007, 19:58
Message
#7
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Absolument, j'en suis parfaitement d'accord Fissiaux.
Mais je parle très exactement de ce que fait la classe split_page result.php. Et j'ai remarqué que celle ci reconstitue la requête, justement pour placer un select count(*), en gros pour connaitre le nombre d'enregistrement, placer les boutons suivant, précédent, et de mettre les bons chiffres dans le limit. Bref, pour cela on est en php, du coup la casse doit être respectée, car comme je l'ai précisé, cette classe recherche par leur position les divers instructions que j'ai cité. Je viens encore de faire le test, c'est imparable, et cela est parfaitement justifié. Je suis étonné que tu n'ai pas remarqué cela. Je dirais plutôt que j'ai mal expliqué le shmilblick. Ce message a été modifié par shoprun - 13 Aug 2007, 19:59. -------------------- 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 |
|
|
13 Aug 2007, 20:07
Message
#8
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Sa requete est syntaxiquement fausse.... C'est pas un problème de casse |
|
|
13 Aug 2007, 20:12
Message
#9
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Et pour terminer (de mon côté), il n'a pas une erreur PHP, il a une erreur MYSQL. Donc ton explication de la classe split_page... est erronée. |
|
|
13 Aug 2007, 20:14
Message
#10
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
Je vais rejoindre Fissiaux voir appuyer son analyse.
select count(p.products_id) as total SELECT p.products_image... arrivé là, pas d'alternative : la requête part en vrille.. Un mélange de requête ? Sweet -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
13 Aug 2007, 20:15
Message
#11
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
http://dev.mysql.com/doc/refman/5.0/fr/man...onventions.html En milieu de page : CITATION Les mot réservés SQL ne sont pas sensibles à la casse, et peuvent être écrits en majuscules ou minuscules. Ce manuel utilise les majuscules.
|
|
|
13 Aug 2007, 20:16
Message
#12
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Que la syntaxe soit fausse, je veux bien (je n'ai pas approfondi le truc), mais je suis (quasi) certain qu'il faudrait d'abord corriger son histoire de from et de where qui est en majuscule (2 seconde chono pour le faire) car sans cela la requête plantera obligatoirement.
Puis comme je viens de dire, je fais à l'instant le test en mettant le from en majuscule, et bien comme c'est bizrrare, j'obtient quasi la même erreur de syntaxe : select count(p.products_id) as total select p.products_image_pte, ........FROM ......... Troublant non ? Je ne pense pas car justement, cette classe recherche un from et non un FROM, du coup la requête est déglinguée. -------------------- 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 |
|
|
13 Aug 2007, 20:20
Message
#13
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
CITATION(shoprun @ 13 Aug 2007, 21:16) [snapback]246752[/snapback] Que la syntaxe soit fausse, je veux bien (je n'ai pas approfondi le truc), select count(p.products_id) as total SELECT p.products_image... Je ne comprends pas .. arrivé ici pourquoi aller plus loin ça ne peut PAS fonctionner... pour le FROM ou from j'en doute mais je suis curieux et je vais faire l'essai (mais pas sur cette requête) Sweet -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
13 Aug 2007, 20:21
Message
#14
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
T'as raison : CODE $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); } extrait de la classe en question. Mais j'ai raison aussi, sur le principe général !!! C'est de la mauvaise programmation |
|
|
13 Aug 2007, 20:24
Message
#15
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Alors là je suis scotché.
Je persiste à dire que le blème vient du faite que c'est dû à la classes split_page_result.php Que mysql ne tient pas compte de la casse je le sais déjà. Je vous invite à faire l'exprérience dans ce index.php par exemple, dans la condition : elseif ($category_depth == 'products' || isset($_GET['manufacturers_id'])) { et mettez y des majuscule sur les from ou where, ça plantera à coup sûr. En tout cas ça belle lurette que j'ai remarqué cela, et j'en ai (en gros) l'explication. Et c'est bien cela que j'ai remarqué dans sa requête. -------------------- 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 |
|
|
13 Aug 2007, 20:28
Message
#16
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Relis mon précédent post : je te donnais raison. Mais tu t'exprimais mal (enfin, c'est mon excuse). |
|
|
13 Aug 2007, 20:32
Message
#17
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
CITATION T'as raison : Ouf, merci aspro CITATION C'est de la mauvaise programmation C'est le moins que l'on peu dire.De plus, je suis certain qu'il y avait moyen de faire cela en acceptant les minuscule et majuscule. M'enfin, à partir du moment qu'on le sait, on ne ce fait plus prendre. En tout cas je me suis cassé les dents la dessus dès le début. -------------------- 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 |
|
|
13 Aug 2007, 20:32
Message
#18
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
Méa culpa !
En plus pour moi c'est bénéfique Le pauvre membre à l'origine du message va y perdre son latin Là je reconnais être allé trop vite. Bien vu Shoprun !! Désolé Sweet -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
13 Aug 2007, 20:47
Message
#19
|
|
![]() 5eme dan OSC Groupe : Administrateur Messages : 9103 Inscrit : 4-March 03 Lieu : Auray Membre no 927 |
Oooops
j'arrive après la bataille. Perso j'ai déjà galéré sur cette fonction un jour où je cherchais à différencier les requêtes avec des minuscules ou des majuscules pour pister une erreur et je me suis permis de la modifier comme ça : CODE class splitPageResults { function splitPageResults(&$current_page_number, $max_rows_per_page, &$sql_query, &$query_num_rows) { if (empty($current_page_number)) $current_page_number = 1; $pos_to = strlen($sql_query); $pos_from = stripos($sql_query, ' from', 0); $pos_group_by = stripos($sql_query, ' group by', $pos_from); if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; $pos_having = stripos($sql_query, ' having', $pos_from); if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; $pos_order_by = stripos($sql_query, ' order by', $pos_from); if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; $reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from))); $reviews_count = tep_db_fetch_array($reviews_count_query); $query_num_rows = $reviews_count['total']; $num_pages = ceil($query_num_rows / $max_rows_per_page); if ($current_page_number > $num_pages) { $current_page_number = $num_pages; } $offset = ($max_rows_per_page * ($current_page_number - 1)); $sql_query .= " limit " . max($offset, 0) . ", " . $max_rows_per_page; } car ce problème de casse me les cassait justement ! pour info stripos() est insensible à la casse contrairement à strpos() -------------------- Tout d'abord :
- Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloperLe gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
|
13 Aug 2007, 20:51
Message
#20
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Je connaissais pas ce bug..... Et j'en ai pas vraiment trouvé trace sur le forum US !! Bien vu à vous deux. |
|
|
13 Aug 2007, 20:56
Message
#21
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
CITATION(Gnidhal @ 13 Aug 2007, 21:47) [snapback]246762[/snapback] pour info stripos() est insensible à la casse contrairement à strpos() Adopté !!! Merci pour ce bout de code ! Sweet -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
13 Aug 2007, 20:57
Message
#22
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
CITATION j'arrive après la bataille. A bah pas du toutCITATION car ce problème de casse me les cassait justement ! Et bien on est au moins 2.Et bien très sincèrement, j'allais un de ces jours me retrousser les manches pour rendre tout cela plus conventionnel. Et bien grâce à toi je crois bien que tu va m'épargner cette peine Oh merci Gnidhal -------------------- 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 |
|
|
| Guest_asocom_* |
14 Aug 2007, 09:24
Message
#23
|
|
Invité |
Bonjour donc au final je fais quoi?
je remplace la fonction strpos par stripos? ou je remets des miniscule dans toutes les requetes sql que j'ai faites ? ps merci a vous tous pour votre aide (sincerement) asocom |
|
|
14 Aug 2007, 09:30
Message
#24
|
|
|
5eme dan OSC Groupe : Membres Messages : 17048 Inscrit : 26-November 03 Lieu : Chez moi Membre no 1669 |
Tu remplaces la fonction strpos par stripos....dans un premier temps. |
|
|
| Guest_asocom_* |
14 Aug 2007, 09:39
Message
#25
|
|
Invité |
bonjour
pour la permutation entre stripos et strpos ca marche pas j'ai un message d'erreur comme quoi la fonction est indefini. |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 20th May 2013 - 03:41 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |