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

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Script PHP "truncate", Plusieurs requettes
AL1
posté 22 Mar 2010, 13:42
Message #1


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 475
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Bonjour a tous,

Je me suis fait un petit script php pour vider certaines de mes tables de temps à autre (genre "holding_orders"), en glanant à droite à gauche des infos sur le net. Bon je suis pas très doué mais j'ai réussi à faire un truc qui va bien...

Code
<?php
  // VARIABLES DE CONNEXION
    $host  = 'xxxx';      // Nom du serveur
    $user  = 'xxxxx';       // identifant
    $mdp  = 'xxxx';       // mot de passe
    $base  = 'xxxx';       // Nom de base
    $table_a_vider   = 'holding_orders';  // Nom de la table à vider
    
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);

  function vider_table($table_a_vider){
    $sql  = "TRUNCATE TABLE ".$table_a_vider;
    mysql_query($sql);
    
    if(mysql_query($sql))
      // SUCCES
      echo "La table ".$table_a_vider." a été vidée !";
    else
      // ECHEC
      echo "La table ".$table_a_vider." n'a pas été vidée de son contenu.";
  }
  // ON VIDE $table_a_vider
  vider_table($table_a_vider);
?>


Seulement j'aimerai vider plusieurs tables en même temps et la je coinse...

Voila ce que j'ai fait:

Code
<?php
  // VARIABLES DE CONNEXION
    $host  = 'xxxx';      // Nom du serveur
                $user  = 'xxxxx';       // identifant
                $mdp  = 'xxxx';       // mot de passe
                $base  = 'xxxx';       // Nom de base
    $table_a_vider_1   = 'holding_orders';  // Nom de la table 1 à vider
    $table_a_vider_2   = 'holding_orders_products';  // Nom de la table 2 à vider
    
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);

  function vider_table_1($table_a_vider_1){
    $sql  = "TRUNCATE TABLE ".$table_a_vider_1;
    mysql_query($sql);
    
  function vider_table_2($table_a_vider_2){
    $sql  = "TRUNCATE TABLE ".$table_a_vider_2;
    mysql_query($sql);
    
    if(mysql_query($sql))
      // SUCCES
      echo "La table ".$table_a_vider_1." a été vidée !";
      echo "La table ".$table_a_vider_2." a été vidée !";
    else
      // ECHEC
      echo "La table ".$table_a_vider_1." n'a pas été vidée de son contenu.";
      echo "La table ".$table_a_vider_2." n'a pas été vidée de son contenu.";
  }
  // ON VIDE $table_a_vider
  vider_table_1($table_a_vider_1);
  vider_table_2($table_a_vider_2);
?>


Mais j'ai des erreurs de syntax notament :
Parse error: syntax error, unexpected T_ELSE in /xxx/xxx/www/catalog/xxx/truncate_essai.php on line 28

Je n'ai pas assez d'expérience pour corriger l'erreur.... mellow.gif

mrci à tous

Alain

Ce message a été modifié par AL1 - 22 Mar 2010, 14:23.


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
audioshop
posté 22 Mar 2010, 16:11
Message #2


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 983
Inscrit : 8-April 08
Lieu : strasbourg
Membre no 21429



Salut,

J'ai pas testé mais je dirais que ça fonctionneras mieux comme ça:
Code
<?php
  // VARIABLES DE CONNEXION
    $host  = 'xxxx';      // Nom du serveur
    $user  = 'xxxxx';       // identifant
    $mdp  = 'xxxx';       // mot de passe
    $base  = 'xxxx';       // Nom de base
    $table_a_vider_1   = 'holding_orders';  // Nom de la table 1 à vider
    $table_a_vider_2   = 'holding_orders_products';  // Nom de la table 2 à vider
    
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
    mysql_connect($host, $user, $mdp) or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base) or die("Impossible de connecter à la base ".$base);
  
  function vider_table_1($table_a_vider_1){
    $sql  = "TRUNCATE TABLE ".$table_a_vider_1;
    $result = mysql_query($sql);
    
    if(!$result){
        // ECHEC
      echo "La table ".$table_a_vider_1." n'a pas été vidée de son contenu.";
    }else{
        // SUCCES
      echo "La table ".$table_a_vider_1." a été vidée !";      
    }
  }
    
  function vider_table_2($table_a_vider_2){
    $sql  = "TRUNCATE TABLE ".$table_a_vider_2;
    $result = mysql_query($sql);
    
    if(!$result){
        // ECHEC
      echo "La table ".$table_a_vider_2." n'a pas été vidée de son contenu.";
    }else{
        // SUCCES
      echo "La table ".$table_a_vider_2." a été vidée !";
      
   }
  }
  // ON VIDE $table_a_vider
  vider_table_1($table_a_vider_1);
  vider_table_2($table_a_vider_2);
?>


@++

Edit: tu peux me dire pourquoi tu utilise des fonction pour faire ça?
parce que je crois que le but des fonction est de pouvoir les réutiliser au cas par cas mais là tu indique tout de suite quelle table tu veux vider alors je dirais qu'il n'est pas nécessaires de faire des fonctions !

mais simplement:
Code
<?php
  // VARIABLES DE CONNEXION
    $host  = 'xxxx';      // Nom du serveur
    $user  = 'xxxxx';       // identifant
    $mdp  = 'xxxx';       // mot de passe
    $base  = 'xxxx';       // Nom de base
    $table_a_vider_1   = 'holding_orders';  // Nom de la table 1 à vider
    $table_a_vider_2   = 'holding_orders_products';  // Nom de la table 2 à vider
    
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
    mysql_connect($host, $user, $mdp) or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base) or die("Impossible de connecter à la base ".$base);


    // ON VIDE LA TABLE holding_orders
    $sql_1  = "TRUNCATE TABLE ".$table_a_vider_1;
    $result_1 = mysql_query($sql_1);
    
          if(!$result_1){
              // ECHEC
            echo "La table ".$table_a_vider_1." n'a pas été vidée de son contenu.";
          }else{
              // SUCCES
            echo "La table ".$table_a_vider_1." a été vidée !";      
          }

  // ON VIDE LA TABLE holding_orders_products
    $sql_2  = "TRUNCATE TABLE ".$table_a_vider_2;
    $result_2 = mysql_query($sql_2);
    
          if(!$result_2){
              // ECHEC
            echo "La table ".$table_a_vider_2." n'a pas été vidée de son contenu.";
          }else{
              // SUCCES
            echo "La table ".$table_a_vider_2." a été vidée !";
          }
?>


il suffit d'appeler le fichier pour exécuter la requête, enfin je ne sais pas trop ce que tu souhaitait faire avec tes fonctions c'est juste une remarque:)

@++

Ce message a été modifié par audioshop - 22 Mar 2010, 16:22.
Go to the top of the page
 

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 : 19th June 2013 - 12:00
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)