IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

besoin d'aide script archivage


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut besoin d'aide script archivage
    Bonjour a tous,
    Je suis plus que débutant dans le php et dans le cadre d'un stage je dois effectuer un script d'archivage d'un base de donnée.
    Voici ce que j'ai commencé a faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <html>
    	<head>
    <title>Archivage table stagiaire</title>
    	</head>
     
    <?php
    require_once('connexion/siga.php'); 
     
    //mysql_query("CREATE TABLE stagiaire_archive AS SELECT * FROM stagiaire WHERE 8=11");// on garde la structure de la table
     
     
    //duree de la page
     
    @ini_set('max_execution_time', 2500);
     
    $datesuppr =date("Y-m-d", mktime(0,0,0,date("m")-6,date("d"),date("Y")));  //creation de la variable de date
    $stagiaire=mysql_query("SELECT * FROM stagiaire WHERE date_pr<'$datesuppr'") or die ("echec selection"); 
     
     
    //$i=1;
     
    // 1ère tech
    //while($stagiairesuppr= mysql_fetch_array($stagiaire) AND $i<10)
    //{
    //$a="INSERT INTO stagiaire_archive (id_stagiaire) VALUE ({$stagiairesuppr['id_stagiaire']})" ;
    //$execution_a = mysql_query($a); 
     
    //echo "avec la 1ère tech: $a </br>";
    //$i++;
    //}
     
    // 2ème tech
    $i=1;
    while($stagiairesuppr= mysql_fetch_array($stagiaire) AND $i<10)
    {
    extract($stagiairesuppr);
    $a="INSERT INTO siga_nord, stagiaire_archive (id_stagiaire) VALUE ($id_stagiaire)" ;
    $execution_a = mysql_query($a); 
    echo "n°:$i<br/>";
     
    $i++;
    }
     
     
    //fin du remplisage de la table archive -->
     
    //test de remplisage de la table -->
     
     
    //$tablearchive= mysql_query("SELECT * FROM stagiaire_archive WHERE date_pr<'$datesuppr'");
    //$stagiaire= mysql_query("SELECT * FROM stagiaire WHERE date_pr<'$datesuppr'");
     
    //if ( $tablearchive == $stagiaire)
    //{
    //mysql_query=("DELETE FROM stagiaire WHERE date_pr<'$datesuppr'") or die("probleme efface");
    //}
    ?>
     
     
    </html>
    Mais biensur sa ne fonctionne pas.
    J'ai bien les numéro qui s'affiche mais pas les données dans la base.
    Désolé si l'erreur est flagrante mais la je désespére.
    Merci d'avance et bonne journée.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    BOnjour et Bienvenue sur les forums.

    2 choses :

    - Je ne comprends pas l'interet de la variable $i
    - TU n'affiche rien dans ta boucle a part le fameux $i donc pas étonnant que tu n'ai que les numéros

    Je peux avoir plus d'informations ? tu cherche a faire quoi exactement ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    en faite je cherche a copier dans la table stagiaire_archive l'intégralité de la table stagiaire ou la date des test dates de plus de 6 mois.
    Et le $i ne sert a rien et il est juste la pour me montré si la boucle fonctionne.

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Je dirais que tu peux le faire assez simplement avec une requete du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO stagiaires_archives (nomsDesColonnes) SELECT (nomsDesMemesColonnes) FROM stagiaires WHERE date > UneDAte

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux le faire avec seulement une requete :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT into stagiaire_archive (SELECT * FROM stagiaire WHERE date_pr< DATE_SUB(CURDATE(), INTERVAL 6 MONTH))

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu peux le faire avec seulement une requete :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT into stagiaire_archive (SELECT * FROM stagiaire WHERE date_pr< DATE_SUB(CURDATE(), INTERVAL 6 MONTH))

    Et sa remplaceré ma requette $a ?
    et donc je n'aurai plus besoin de $datesuppr?

    Je pose plein de question mais je préfére comprendre au lieu de recopier bétement.

    Merci de coup de main!

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par punisher62 Voir le message
    Et sa remplaceré ma requette $a ?
    ça remplace la requete $a et meme toute la boucle , tu laisse le serveur MySQL se charger de l'archivage , tu n'as qu'une requete a faire ...

    Citation Envoyé par punisher62 Voir le message
    et donc je n'aurai plus besoin de $datesuppr?
    Avec le code de sabotage en effet cette variable aussi elle vire , toujours MySQL qui va s'occuper de faire a ta place.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut lol
    bon en 5 min vous avez resolu se que je fais depuis 1 semaine.

    Bon bas temps que j'y suis,
    &a la fin de mon code je dois effacer ce que j'ai copié dans la table stagiaire_archive de la table stagiaire mais en testant si tout a bien était copié.
    Et la j'avous que je ne sais vraiment pas comment faire.
    Encore moin que tout a l'heure...
    Merci

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    En faite le seul truc que je n'arrive pas a faire c'est testé si les données on bien était copié avant de lancé la suppression.
    Je ne sais pas si mySQL gére les condition sinon je seré obligé de le faire en php.
    En tout cas vous m'avez deja bien simplifié la tache
    MERCI

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Je reviens vers vous pour vous montré quelques choses.

    Voici le code maintenent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    require_once('connexion/siga.php'); 
    //mysql_connect($cfgHote, $cfgUser, $cfgPass);
    //mysql_select_db($cfgBase);
     
    mysql_query("CREATE TABLE stagiaire_archive AS SELECT * FROM stagiaire WHERE 8=11");// on garde la structure de la table
    execute &create;
     
     
    mysql_query("INSERT INTO stagiaire_archive (SELECT COUNT(*) FROM stagiaire WHERE date_pr< DATE_SUB(CURDATE(), INTERVAL 6 MONTH))");
    if ( mysql_affected_rows() == COUNT )
    {
    mysql_query("DELETE FROM stagiaire WHERE date_pr< DATE_SUB(CURDATE(), INTERVAL 6 MONTH)");
    }
     
    ?>

    (ps : merci encore )

    Mais quand je l'execute rien ne se passe, pourtant quand je vais dans mysql et que je fais ligne par ligne sa marche.
    Que doit-je faire ?

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu utilises une constante COUNT qui n'est pas défini.
    Je suppose que tu voulais que COUNT soit le COUNT(*) de ta requete d'insertion au dessus mais de toute facon cette requete est fausse : tu ne peux pas insérer et compter en meme temps, cela doit etre deux requetes distinctes.

Discussions similaires

  1. Besoin d'aide script PERL generateur de hits
    Par maiko dans le forum Web
    Réponses: 4
    Dernier message: 10/07/2009, 23h06
  2. debutant - besoins d'aide script
    Par kienast dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 19/05/2009, 22h31
  3. Besoin d'aide script perl MERCI
    Par la_star160 dans le forum Langage
    Réponses: 1
    Dernier message: 11/08/2008, 12h36
  4. [Pb Création de Rôles] Besoin d'aide script
    Par Tgaud dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/07/2008, 15h25
  5. Besoin d'aide script galerie
    Par orphen dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2007, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo