osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

> OSC2.3 rame et plante mon serveur, Too many connections (my sql)
frogger74
posté 21 Feb 2012, 23:02
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 12
Inscrit : 21-February 12
Membre no 30622



Bonjour,



Je possède une boutique OSC 2.2, j'ai décidé de passer à la version 2.1.3, j'ai donc transféré le contenue de mon catalogue et compte client vers cette nouvelle version, j'ai en plus installé SPPC, QTPRO et ECOTAXE.

Mon OSC 2.3 fonctionne bien, sauf que cette version de OSC est très lente, même dans sa version de base, surtout le backoffice, celui ci est 10 fois plus lent que la version 2.2… je sais que je possède pas mal de produits (1500) mais quand même.

Au point de faire planter le serveur SQL, je suis sur un serveur dédié (1 giga de RAM), j'ai décidé il y à quelques jours de mettre en ligne le site, 4 heures après le serveur était saturé :

Code
Erreur Too many connections

Warning: mysql_connect() [function.mysql-connect]: Too many connections in /home/monsite.com/public_html/boutique/includes/functions/database.php on line 20

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/monsite.com/public_html/boutique/includes/functions/database.php on line 24

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/monsite.com/public_html/boutique/includes/functions/database.php on line 25

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/monsite.com/public_html/boutique/includes/functions/database.php on line 26

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/monsite.com/public_html/boutique/includes/functions/database.php on line 27
Unable to connect to database server!


J'ai donc demandé à mon héberger, celui ci me dit en gros m'indique que c'est le site osc 2.1.3 qui bug, une application php qui tourne en boucle, en me disant également que OSC, ce n'était pas viable….. bref je ne veux pas rentrer dans cette polémique, je cherche juste à comprendre ce qui cloche avec les fonction SQL, je pense que trop de connexion SQL sont ouverte …..

Voici le code de ma page function/database.php

Code
<?php
/*
   $Id$
   adapted for Separate Pricing Per Customer 2005/03/04

   osCommerce, Open Source E-Commerce Solutions
   http://www.oscommerce.com

   Copyright (c) 2007 osCommerce

   Released under the GNU General Public License
*/

   function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
     global $link;

     if (USE_PCONNECT == 'true') {
       $link = mysql_pconnect($server, $username, $password);
     } else {
       $link = mysql_connect($server, $username, $password);
     }
     if ($link) mysql_select_db($database);
// Modification pour ecriture de la base SGL en CHARSET UTF-8
mysql_query("SET CHARACTER SET 'utf8'", $link);
mysql_query("SET NAMES utf8", $link);
mysql_query("SET CHARACTER_SET_CLIENT=utf8", $link);
mysql_query("SET CHARACTER_SET_RESULTS=utf8", $link);
// Modification pour ecriture de la base SGL en CHARSET UTF-8

     return $link;
   }

   function tep_db_close($link = 'db_link') {
     global $link;

     return mysql_close($link);
   }

   function tep_db_error($query, $errno, $error) {
     die('<font color="#000000"><strong>' . $errno . ' - ' . $error . '<br /><br />' . $query . '<br /><br /><small><font color="#ff0000">[TEP STOP]</font></small><br /><br /></strong></font>');
   }

   function tep_db_query($query, $link = 'db_link') {
     global $link;

     if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
       error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
     }

     $result = mysql_query($query, $link) or tep_db_error($query, mysql_errno(), mysql_error());

     if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
        $result_error = mysql_error();
        error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
     }

     return $result;
   }

   function tep_db_perform($table, $data, $action = 'insert', $parameters = '', $link = 'db_link') {
     reset($data);
     if ($action == 'insert') {
       $query = 'insert into ' . $table . ' (';
       while (list($columns, ) = each($data)) {
         $query .= $columns . ', ';
       }
       $query = mb_substr($query, 0, -2) . ') values (';
       reset($data);
       while (list(, $value) = each($data)) {
         switch ((string)$value) {
           case 'now()':
             $query .= 'now(), ';
             break;
           case 'null':
             $query .= 'null, ';
             break;
           default:
             $query .= '\'' . tep_db_input($value) . '\', ';
             break;
         }
       }
       $query = mb_substr($query, 0, -2) . ')';
     } elseif ($action == 'update') {
       $query = 'update ' . $table . ' set ';
       while (list($columns, $value) = each($data)) {
         switch ((string)$value) {
           case 'now()':
             $query .= $columns . ' = now(), ';
             break;
           case 'null':
             $query .= $columns .= ' = null, ';
             break;
           default:
             $query .= $columns . ' = \'' . tep_db_input($value) . '\', ';
             break;
         }
       }
       $query = mb_substr($query, 0, -2) . ' where ' . $parameters;
     }

     return tep_db_query($query, $link);
   }

   function tep_db_fetch_array($db_query) {
     return mysql_fetch_array($db_query, MYSQL_ASSOC);
   }

   function tep_db_num_rows($db_query) {
     return mysql_num_rows($db_query);
   }

   function tep_db_data_seek($db_query, $row_number) {
     return mysql_data_seek($db_query, $row_number);
   }

   function tep_db_insert_id($link = 'db_link') {
     global $link;

     return mysql_insert_id($link);
   }

   function tep_db_free_result($db_query) {
     return mysql_free_result($db_query);
   }

   function tep_db_fetch_fields($db_query) {
     return mysql_fetch_field($db_query);
   }

   function tep_db_output($string) {
     return htmlspecialchars($string);
   }

   function tep_db_input($string, $link = 'db_link') {
     global $link;

     if (function_exists('mysql_real_escape_string')) {
       return mysql_real_escape_string($string, $link);
     } elseif (function_exists('mysql_escape_string')) {
       return mysql_escape_string($string);
     }

     return addslashes($string);
   }

   function tep_db_prepare_input($string) {
     if (is_string($string)) {
       return trim(tep_sanitize_string(stripslashes($string)));
     } elseif (is_array($string)) {
       reset($string);
       while (list($key, $value) = each($string)) {
         $string[$key] = tep_db_prepare_input($value);
       }
       return $string;
     } else {
       return $string;
     }
   }
// BOF Separate Pricing Per Customer, adapted from sample code in user comments on
   // http://www.php.net/manual/en/function.mysql-list-tables.php
   // Wrap DB_DATABASE with Back Ticks, Fixes Hyphens in Database Name, code from
   // Jef Stumpf/Krumbsnatcher: http://forums.oscommerce.com/index.php?showtopic=53436&view=findpost&p=563454
   function tep_db_table_exists($table, $link = 'db_link') {
       $result = tep_db_query("show table status from `" . DB_DATABASE . "`");
       while ($list_tables = tep_db_fetch_array($result)) {
         if ($list_tables['Name'] == $table) {
             return true;
         }
       }
       return false;
   }

   function tep_db_check_age_specials_retail_table() {
       $result = tep_db_query("show table status from `" . DB_DATABASE . "`");
       $last_update_table_specials = "2000-01-01 12:00:00";
       $table_srp_exists = false;
       while ($list_tables = tep_db_fetch_array($result)) {
       if ($list_tables['Name'] == TABLE_SPECIALS_RETAIL_PRICES) {
         $table_srp_exists = true;
         $last_update_table_srp = $list_tables['Update_time'];
       }
         if ($list_tables['Name'] == TABLE_SPECIALS) {
         $last_update_table_specials = $list_tables['Update_time'];
         }
       } // end while

       if(!$table_srp_exists || ($last_update_table_specials > $last_update_table_srp)) {
          if ($table_srp_exists) {
              $query1 = "truncate " . TABLE_SPECIALS_RETAIL_PRICES . "";
              if (tep_db_query($query1)) {
                      $query2 = "insert into " . TABLE_SPECIALS_RETAIL_PRICES . " select s.products_id, s.specials_new_products_price, s.status, s.customers_group_id from " . TABLE_SPECIALS . " s where s.customers_group_id = '0'";
                      $result =  tep_db_query($query2);
                  }
          } else { // table specials_retail_prices does not exist
              $query1 = "create table " . TABLE_SPECIALS_RETAIL_PRICES . " (products_id int NOT NULL default '0', specials_new_products_price decimal(15,4) NOT NULL default '0.0000', status tinyint, customers_group_id smallint, primary key (products_id) )";
              $query2 = "insert into " . TABLE_SPECIALS_RETAIL_PRICES . " select s.products_id, s.specials_new_products_price, s.status, s.customers_group_id from " . TABLE_SPECIALS . " s where s.customers_group_id = '0'";
              if( tep_db_query($query1) && tep_db_query($query2) ) {
                   ; // execution succesfull
                  }
                 } // end else
             } // end if(!$table_srp_exists || ($last_update_table_specials....
         }

   function tep_db_check_age_products_group_prices_cg_table($customer_group_id) {
       $result = tep_db_query("show table status from `" . DB_DATABASE . "`");
       $last_update_table_pgp = strtotime('2000-01-01 12:00:00');
       $table_pgp_exists = false;
       while ($list_tables = tep_db_fetch_array($result)) {
             if ($list_tables['Name'] == TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id) {
                 $table_pgp_exists = true;
                 $last_update_table_pgp = strtotime($list_tables['Update_time']);
             } elseif ($list_tables['Name'] == TABLE_SPECIALS ) {
                 $last_update_table_specials = strtotime($list_tables['Update_time']);
             } elseif ($list_tables['Name'] == TABLE_PRODUCTS ) {
                 $last_update_table_products = strtotime($list_tables['Update_time']);
             } elseif ($list_tables['Name'] == TABLE_PRODUCTS_GROUPS ) {
                 $last_update_table_products_groups = strtotime($list_tables['Update_time']);
             }
       } // end while

     if ($table_pgp_exists == false) {
       $create_table_sql = "create table " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id . " (products_id int NOT NULL default '0', products_price decimal(15,4) NOT NULL default '0.0000', specials_new_products_price decimal(15,4) default NULL, status tinyint, primary key (products_id) )";
       $fill_table_sql1 = "insert into " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." select p.products_id, p.products_price, NULL as specials_new_products_price, NULL as status FROM " . TABLE_PRODUCTS . " p";
       $update_table_sql1 = "update " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." ppt left join " . TABLE_PRODUCTS_GROUPS . " pg using(products_id) set ppt.products_price = pg.customers_group_price where ppt.products_id = pg.products_id and pg.customers_group_id ='" . $customer_group_id . "'";
       $update_table_sql2 = "update " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." ppt left join " . TABLE_SPECIALS . " s using(products_id) set ppt.specials_new_products_price = s.specials_new_products_price, ppt.status = s.status where ppt.products_id = s.products_id and s.customers_group_id = '" . $customer_group_id . "'";
             if ( tep_db_query($create_table_sql) && tep_db_query($fill_table_sql1) && tep_db_query($update_table_sql1) && tep_db_query($update_table_sql2) ) {
                      return true;
             }
         } // end if ($table_pgp_exists == false)
    
         if ( ($last_update_table_pgp < $last_update_table_products && (time() - $last_update_table_products > (int)MAXIMUM_DELAY_UPDATE_PG_PRICES_TABLE * 60) ) || $last_update_table_specials > $last_update_table_pgp || $last_update_table_products_groups > $last_update_table_pgp ) { // then the table should be updated
       $empty_query = "truncate " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id . "";
       $fill_table_sql1 = "insert into " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." select p.products_id, p.products_price, NULL as specials_new_products_price, NULL as status FROM " . TABLE_PRODUCTS . " p";
       $update_table_sql1 = "update " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." ppt left join " . TABLE_PRODUCTS_GROUPS . " pg using(products_id) set ppt.products_price = pg.customers_group_price where ppt.products_id = pg.products_id and pg.customers_group_id ='" . $customer_group_id . "'";
       $update_table_sql2 = "update " . TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id ." ppt left join " . TABLE_SPECIALS . " s using(products_id) set ppt.specials_new_products_price = s.specials_new_products_price, ppt.status = s.status where ppt.products_id = s.products_id and s.customers_group_id = '" . $customer_group_id . "'";
       if ( tep_db_query($empty_query) && tep_db_query($fill_table_sql1) && tep_db_query($update_table_sql1) && tep_db_query($update_table_sql2) ) {
           return true;
       }
         } else { // no need to update
              return true;
         } // end checking for update

   }

// EOF Separate Pricing Per Customer
?>



Peut être que SPPC etc pourrait être mieux adapté au autres contribution, du moin dans sa gestion de mysql... non? n'étant pas un grand expert en mysql , je patauge.. unsure.gif

Mais cela n'explique pas quel en serait la cause… d'autant que j'avais essayé de récupérer un peu de vitesse en supprimant des functions, mais çà n'y change rien, le problème doit être identique pour le backoffice , voir même pire , car il faut attendre presque 20 secondes à chaque action clique. (c'est sur que c'est plus rapide si je n'est qu'une centaine de produits.)

Peut être aussi le serveur dédié qui commence à saturer (1 Giga de ram), voir aussi le module MySQL du serveur (max_connections) qui pourrait être paramétré à la hausse… mais je pense qu'une optimisation du code de L'osc 2.3 serait plus intéressant.

ensuite en cherchant un peu j'ai trouvé ceci dans configure.php, y'a t'il un rapport ?
Code
define('USE_PCONNECT', 'false');
define('STORE_SESSIONS', 'mysql');


Donc, je pense changer d'hébergeur, pour passer sur un serveur dédié plus performant et infogéré par une équipe à l'écoute, car l'hébergeur actuel, n'a que faire de mes problèmes… ainsi un diagnostique pourrait être entrepris…

Bref, si vous avez une idée sur ce problème, je suis preneur… car je suis très déçu par la version OSC2.3 et je ne sais pas ou chercher, je commence à regretter son installation. confused.gif ??:

Merci pour votre aide cool.gif

Ce message a été modifié par frogger74 - 23 Feb 2012, 09:12.
Go to the top of the page
 
 
Start new topic
Réponse(s)
paddybl
posté 29 Feb 2012, 11:26
Message #2


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 475
Inscrit : 22-September 06
Lieu : Lons le saunier(39)
Membre no 12229



tient j'ai retrouvé ca en réponse à un courrier à la dgccrf:

Citation
DIRECTION GENERALE DE LA CONCURRENCE,
DE LA CONSOMMATION ET DE LA REPRESSION DES FRAUDES
59, BD VINCENT AURIOL TELEDOC
75703 PARIS CEDEX 13
PARIS, LE 9 NOVEMBRE 2006
Madame, Monsieur,
Vous avez fait état, à plusieurs reprises, de difficultés rencontrées par vos adhérents pour établir, à
partir du 15 novembre prochain, des factures conformes aux dispositions législatives et réglementaires
relatives au financement des DEEE ménagers.
L’entrée en vigueur des agréments des organismes environnementaux à cette date place les
professionnels devant l’obligation d’établir des factures conformes à un ensemble de prescriptions
relatives à la facturation (article L.441-3 du code de commerce) et à l’environnement (articles 17 et 25
du décret dit « DEEE » et article L.541-10-2 du code de l’environnement).
Elles doivent ainsi respecter :
- L’article L. 441-3 du code de commerce relatif à la facturation (il en est déduit que la
contribution environnementale ne peut faire l’objet ni d’une ligne séparée ni d’une colonne
séparée sur la facture) ;
- l’article 17 du décret 2005-829 dit « DEEE » qui prévoit une mention particulière figurant au
bas de la facture de vente, du coût correspondant à l’élimination des déchets électriques et
électroniques ménagers « historiques », c’est-à-dire mis sur le marché avant le 13 août 2005
(date d’entrée en vigueur de la directive référente) ;
- l’article 25 de ce même décret prévoyant des sanctions pénales si ce coût « unitaire » n’est pas
mentionné sur les factures ;
- l’article L. 541-10-2 du code de l’environnement adopté par la loi de finances rectificative du
31 décembre 2005, prévoyant que ces coûts unitaires ne peuvent faire l’objet de réfaction et
doivent être répercutés à l’identique jusqu’au consommateur final (de ce fait, les rabais,
remises, ristournes et escomptes ne peuvent leur être appliqués).


et ca directement dans le décret:
Citation
2.2.1 - Champ d’application
En application de l’article L.541-10-2 du code de l’environnement, les producteurs et les
distributeurs « font apparaître, en sus du prix hors taxe, en pied de factures de vente de
tout nouvel équipement électrique et électronique ménager, les coûts unitaires supportés
pour l'élimination de ces déchets ».
• Producteur
Selon l’article 3.1°du décret du 20 juillet 2005 « est considérée comme producteur toute
personne qui fabrique, importe ou introduit sur le marché national à titre professionnel des
équipements électriques et électroniques, sauf si ces équipements sont vendus sous la seule
marque d'un revendeur. Dans ce cas, le revendeur est considéré comme producteur ».
C’est le producteur ainsi défini, qui doit s’acquitter des obligations « d'enlever ou de faire
enlever, puis de traiter ou de faire traiter les déchets d'équipements électriques et
électroniques ménagers collectés sélectivement», soit en mettant en place un système
individuel, soit en adhérant à un organisme agréé auquel il verse une contribution financière.
L’organisme agréé établit une facture à partir du bordereau communiqué par le producteur
relatant les poids, les quantités, les catégories et les références des équipements électriques ou
électroniques ménagers mis sur le marché.
• Distributeur
Selon l’article 3.2° du décret du 20 juillet 2005 « est considérée comme distributeur toute
personne qui, quelle que soit la technique de distribution utilisée, y compris par
communication à distance, fournit à titre commercial des équipements électriques et
électroniques à celui qui va les utiliser».


un simple import fait de nous des producteurs... si on le place sous sa marque. c'est souvent le cas

et puis ca:
Citation
Informer les acheteurs du coût unitaire de l'élimination des déchets historiques :
Depuis le 15 novembre 2006, les revendeurs d'équipements électriques et électroniques ménagers
sont tenus d'informer leurs acheteurstdu montant de contribution visible dont les producteurs se
sont acquittés pour chaque équipement qu'ils mettent sur le marché et qui a déjà été répercutée
par les différents acteurs de la chaîne.
Le décret n02005-829 du 20 juillet 2005 prévoit en effet que les producteurs (fabricants, importateurs
ou distributeurs marques propres) assurent l'enlèvement et le traitement des DEEE ménagers
collectés sélectivement. Ils adhèrent pour cela à un organisme agréé qui organise cet enlèvement
et ce traitement et auquel ils versent, pour financer leurs obligations, une contribution par
équipement mis sur le marché. Le montant de cette contribution par équipement est la
contribution visible, également appelée éco-contribution, éco-participation, contribution
environnementale ou coût de l'élimination. Ce montant est répercuté à l'identique et de manière
visible jusqu'au consommateur final pendant une période transitoire. La contribution visible est un
élément du coût total de l'équipement et non une taxe.

Ce montant doit être indiqué par le fournisseur de l'équipement. C'est le producteur qui lui aura
lui-même transmis cette information. A défaut, il n'incombe pas au revendeur de déterminer luimême
le montant de la contribution, mais il convient toutefois de solliciter ses fournisseurs de
manière à ce que cette information lui soit transmise dans les meilleurs délais 3 les
distributeurs, en aval, soient informés du montant de la contribution à afficher.
Le montant de la contribution environnementale pourra être différent pour un même type de
produit, en fonction de I'organisme agréé auquel adhère le producteur de l'équipement

Par quels moyens ?

Le montant de la contribution environementale doit apparaÎtre au bas de la facture de vente
(autant de mentions en bas de facture que d'équipements vendus). Elle ne peut faire l'objet
d'aucune marge ou réfaction lors des négociations commerciales entre les différents revendeurs.


Ce message a été modifié par paddybl - 29 Feb 2012, 11:58.


--------------------
oscommerce version ms2fr-060817; contributions: AdminMS2fr_V2.3 - Easypopulate 2.76 - MS2-big_images 1.25 - 2.2-MS2 - BoxImageThemaMS2fr_V2.7 - BUY_TWO_MODULE-V21a - xsell_v2.3 - Your Recent History V3.0 - QTPro.v4.25 - Full-products_on_order1.2 - Ultimate_SEO_URLs 2.2.2 - .buy_now_link_to_button_v1.2c - Site Map MS2 - 2.3a-.robots1.1 - Dynamic Meta Tags - best sellers v1 - bestseller with admin - Review Approval System v1.3_1 - online_offline - SEO_Assistant_V_1.4 - Product Tabs 1.7-2 - avsearch - zones-french_Latin1 - new-faster-checkout - Anti Robot Registration Validation 2.4.01 - anti_spambot_contact_us_1.2 - anti_spambot_review_1_2 - colissimo_1.5.2 - ajax_contrib - GoogleFeeder103 - store feeds.v3.1 - categoriesFrontPage2-3d - Extra pages-info box w-admin 4_6 - PDF data-sheet v.1.7 compatible gif - CCGV5.18 - cvv2_version2 -Edit Order with ecotax- OrderCheck_v2.5.2 with Ecotax- orderlist4.0 - payment_atos_5_00-2.2.4 - payment_bluepaid-2 - Featured_Products_v1.5.8 - newsdesk_v_1.48.3 - .FAQDesk.v1.01.1 - French_Chronopost_Shipping - Popup Estimated Shipping v1.7b -optimize tax ver1.2-query debug 1.7-faster configuration cache 1.32- Print Order Receipt v1.4with ecotax- b2bsuite corrigé par moi ;o) ,

Ecotax v1.4.1 Plus Export, Paypal donation et Infinit'Images par moi même et d'autres à venir...
Go to the top of the page
 

Les messages de ce sujet
- frogger74   OSC2.3 rame et plante mon serveur   21 Feb 2012, 23:02
- - krokus   Bonjour, etant sur un mutualise avec + de 2000 pro...   25 Feb 2012, 10:31
- - frogger74   Citation (krokus @ 25 Feb 2012, 10:31) Bo...   26 Feb 2012, 14:15
- - Gnidhal   Bonjour, déjà évoqué ailleurs, tu as à ta disposi...   26 Feb 2012, 15:10
- - frogger74   Merci Gnidhal, Tu me met sur la voix, j'ai m...   26 Feb 2012, 23:27
- - FoxP2   Citation (frogger74 @ 21 Feb 2012, 23:02)...   27 Feb 2012, 07:49
- - Gnidhal   Citation (FoxP2 @ 27 Feb 2012, 07:49) 10 ...   27 Feb 2012, 09:31
- - frogger74   Citation (Gnidhal @ 27 Feb 2012, 09:31) C...   27 Feb 2012, 11:56
- - frogger74   Bon, pour ceux que çà intéresse, j'avance dans...   27 Feb 2012, 15:05
- - Gnidhal   houla! STOOOOP! Mon exemple de boucle for...   27 Feb 2012, 16:52
- - frogger74   Déjà l'infographiste que je suis à ses limites...   27 Feb 2012, 18:40
- - Gnidhal   Citation (frogger74 @ 27 Feb 2012, 18:40)...   27 Feb 2012, 19:02
- - frogger74   Salut! En fait , je compte passer sur un ser...   27 Feb 2012, 21:19
- - Gnidhal   ce n'est pas la base qui est mal ficelée, ce s...   27 Feb 2012, 22:43
- - FoxP2   Le développement, ça ne s'invente pas, ça s...   28 Feb 2012, 00:21
- - frogger74   J'avais déjà fait appel à un développeur, mais...   28 Feb 2012, 10:23
- - FoxP2   Citation (frogger74 @ 28 Feb 2012, 10:23)...   28 Feb 2012, 10:54
- - paddybl   salut à tous, comme on parle d'ecotax je me p...   28 Feb 2012, 16:48
- - Gnidhal   Citation (paddybl @ 28 Feb 2012, 16:48) l...   28 Feb 2012, 17:46
- - frogger74   Salut Paddybl, Citation (paddybl @ 28 Feb 20...   28 Feb 2012, 23:19
- - paddybl   Je suis d'accord avec toi gnidhal,c'est pa...   29 Feb 2012, 09:28
- - Gnidhal   Citation (paddybl @ 29 Feb 2012, 09:28) m...   29 Feb 2012, 09:44
- - paddybl   tient j'ai retrouvé ca en réponse à un courrie...   29 Feb 2012, 11:26
- - FoxP2   il y a une piste à explorer : étant donné que le s...   29 Feb 2012, 11:50
- - paddybl   je dis pas le contraire fox... il étaient tout à f...   29 Feb 2012, 12:08
- - Gnidhal   @paddybl Si je résume ce qui est dit dans les docu...   29 Feb 2012, 12:37
- - paddybl   tient j'ai retrouvé l'exemple de facture c...   29 Feb 2012, 12:54
- - paddybl   frogger74 m'a envoyé sont fichier categories ...   29 Feb 2012, 15:30
- - paddybl   bien je modifie moi même le code pour ne plus fair...   29 Feb 2012, 16:01
- - Gnidhal   on peut toujours optimiser un peu : une façon de d...   29 Feb 2012, 16:32
- - paddybl   pas béte en effet. au final qu'en j'avais ...   29 Feb 2012, 17:29
- - frogger74   Bonjour à tous! Merci à vous et désolé de ré...   8 Mar 2012, 09:50
- - davas   Bonjour, Merci à tous pour tous vos contributions...   1 Nov 2012, 10:52


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 29th March 2024 - 06:07
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)