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

PHP & Base de données Discussion :

Purge partielle d’une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut Purge partielle d’une table
    Bonjour,
    C’est pour une association, un soft réalisé par un ancien membre pour la gestion d’une bourse aux livres. Malheureusement, je n’y connais pas grand-chose.
    Le but est de purger partiellement une table, afin que lors de la prochaine utilisation, on puisse en retrouver certaines lignes via un formulaire, et les afficher afin de pouvoir valider de nouveau .

    Donc l’idée est de pouvoir vider les colonnes :code_deposant, Livres, DVD ,CD, date_creation, Note
    Ainsi, lors de la prochaine utilisation, en remplissant le Nom ça retrouverait toutes les autres colonnes

    Ci-joint : la page ajout deposant.(on peut tout faire c’est une copie pour test) https://www.cjoint.com/c/MIAaxBJyEWD

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    `code_deposant` int(2) NOT NULL,
    `nom` varchar(40) NOT NULL,
    `prenom` varchar(40) DEFAULT NULL,
    `rue` varchar(40) NOT NULL,
    `code_postal` varchar(5) DEFAULT NULL,
    `ville` varchar(40) NOT NULL,
    `tel` varchar(15) DEFAULT '06',
    `email` varchar(40) DEFAULT 'email@email.fr',
    `association` varchar(40) DEFAULT 'Deposant',
    `Livres` varchar(40) DEFAULT '0',
    `DVD` varchar(40) DEFAULT '0',
    `CD` varchar(40) DEFAULT '0',
    `date_creation` date NOT NULL,
    `Note` varchar(1001) DEFAULT ''
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='V6_08_19_01';

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    la bdd contient une seule table ?

    Il serait plus logique de constituer tables (deposant et livre).

    Peux-tu préciser le rôle des dernières colonnes (de 'livres' à 'note') ?

    Dans la table que tu montres, il y a bien une clé primaire, non ?

  3. #3
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Avant tout merci d'avance.
    sur la Bdd d'origine, la cle primaire " code_deposant" ( me suis dit faut l'enlever sinon impossible de garder nom et coordonnées postale)

    La Bdd contient plusieurs tables, les colonnes Livres,Cd, dvd = nombre d'articles déposant par un client,la colonne note= texte libre pour indiquer si le client reprends ces articles à la fin, ou autre indication texte.

    Car le soft nous permet de gérer le nom d'un client auquel on attribut un code a deux lettres, ces coordonnées, le nombre d'articles, et la la vente, de connaitre le nombre, la sommes du au client en fin de vente le prix moyen, le pourcentage d'articles vendus. C'est pour cela me disait, je crée une copie de la base et surtout la table "deposant" pour la effectué la purge et m'en servir lors de la prochaine utilisation est d'injecter les nouvelles données dans la table d'origine.Pièce jointe 644472

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    j'avoue ne pas tout comprendre, notamment ce que tu veux faire. A quoi ça servirait de vider certaines colonnes ? Néanmoins, voici le code SQL pour mettre la valeur par défaut de la colonne Livres : UPDATE deposant SET livres=0;.

    Autre point : j'ai jeté un oeil au code PHP que tu donnes : la fonction get_magic_quotes_gpc n'existe plus en PHP8.

    Warning

    This function has been DEPRECATED as of PHP 7.4.0, and REMOVED as of PHP 8.0.0. Relying on this function is highly discouraged.
    https://www.php.net/manual/en/functi...quotes-gpc.php

  5. #5
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Donc l’idée est de pouvoir vider les colonnes :code_deposant, Livres, DVD ,CD ,date_creation, Note
    Ainsi lors de la prochaine utilisation, en remplissant le Nom ça retrouverais tous les autres champs.


    La cles primaire est sur la colonne " code_deposant" afin qu'on ne puisse pas avoir de doublon. ( dans cette version).

    Donc, on organise la vente des différents articles un jour XX en 2022. On réorganise le même type d’événement en 2023 un jour ..... La forcément les déposants,le nombre d'articles ne sont pas forcement les même, et les codes déposant seront obligatoirement différent.

    Concernant la fonction get_magic_quotes_gpc n'existe plus en PHP8. : la version php de wamp est : 7.2.18 Le soft est en local n'est pas fait pour être en ligne.
    Apres faudrais je reprendre toutes les pages pour verifier et modifier " get_magic_quotes_gpc"
    Ca fait 105 pages a verifier

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Si je comprends bien, ce que tu voudrais, c'est que à partir du nom, tu retrouves les colonnes prenom, rue, code_postal, ville, tel, email, association ?

  7. #7
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    OUI, en ayant la colonne "code deposant" vide de façon a rentrer un nouveaux code a deux lettres.

  8. #8
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Plutôt 2 chiffres, vu que c'est un entier....

    Si c'est un nouveau déposant (donc encore inconnu), tu fais comment ?

    Je te fais part d'une réflexion faite hier (pas le temps tout de suite de réfléchir à nouveau à ton besoin) : il me semble qu'il aurait été plus judicieux de couper la table en 2 tables : client (id_client, nom, prenom,...) et deposant (code_deposant, id_client (foreign key), Livres, DVD, CD, date_creation, note). Mais comme j'imagine que tu ne veux pas modifier le code PHP, on oublie...

    Autre point : si tu mets à jour wampserver, assure toi de te mettre en PHP 7.2.18 sinon, le code ne tournera pas.

  9. #9
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    bonjour LaurentSc,

    Petite précision le soft a été écris en 1987, et donc forcément il as évolué au fil du temps en ajoutant des fonctionnalité, et et mise a jour tant du php, que mysql A mysqli ça ma bien la tête la dernière MaJ date de2021.

    Si un nouveau déposant on le crée entièrement via le formulaire ( page ajout_deposant).
    Le code du déposant : préfère rester sur deux lettres car si on passe a deux chiffres plein de lignes de code et requête a changer.

    Separer la table en deux : pourquoi pas pour éviter de tout réécrire créer deux nouvelles tables qui permettrais d'arriver a mon souhait, une fois tout les déposant enregistrer pour la nouvelle Bourse, injecter d'une maniere ou d'un autre les données.

    Autre point : si tu mets à jour wampserver, assure toi de te mettre en PHP 7.2.18 sinon, le code ne tournera pas. Je me doutes bien que la mise a jour de php mettra plein d'erreur et que je n'aurais pas que " get_magic_quotes_gpc" à supprimer.

    ps: je ne serais pas dispo ce jour de 13h00 à 21h00

  10. #10
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Petite précision le soft a été écris en 1987
    j'avais 23 ans et j'ai commencé le travail cette année-là !

    je ne serais pas dispo ce jour de 13h00 à 21h00
    OK, donc si je t'écris dans cette plage de temps, j'attends pas une réponse immédiate.

    Separer la table en deux : pourquoi pas
    Si tu es partant pour modifier la structure des tables, cela signifie donc aussi modifier le code PHP ; dans ce cas, intéresse-toi peut-être à cette classe merveilleuse : en FR, pas à jour mais le principe a pas changé https://www.developpez.net/forums/bl...dutiliser-pdo/ ; à jour mais ENG : https://github.com/rawsrc/PDOPlusPlus

  11. #11
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Hello,
    alors j'ai jeter un œil et essayer de comprendre un peu au passage, vus la version de mon php il y a t-il d'autre extension pdo a activer que " pdo_mysql "

    Après il est clair, que si ma demande pouvait être dans le soft actuel ça m'arrangerais bien, mais en l'état actuel du soft est ce possible ?

  12. #12
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    vus la version de mon php il y a t-il d'autre extension pdo a activer que " pdo_mysql "
    Je sais pas ; je t'invite à faire l'essai en créant un projet de test en parallèle du projet actuel.

    OUI, en ayant la colonne "code deposant" vide de façon a rentrer un nouveaux code a deux lettres.
    `code_deposant` int(2) NOT NULL,
    Bizarre...

  13. #13
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Je sais pas ; je t'invite à faire l'essai en créant un projet de test en parallèle du projet actuel.

    `code_deposant` int(2) NOT NULL,
    Bizarre...
    Qu'es ce que tu trouves de bizare la colonne code déposant ne doit pas pouvoir contenir de doublon et obligatoire d'avoir un code pour chaque déposant

    J'essaie de faire un test comme tu la suggerer (la bien sur c'est sur une copie n'ayant pas le même nom, ni Bdd) donc aucun risque.

  14. #14
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Ce que je trouve bizarre, c'est de mettre 2 lettres dans une colonne de type entier...

  15. #15
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Ce que je trouve bizarre, c'est de mettre 2 lettres dans une colonne de type entier...
    depuis la creation du soft, la colonne codeposant as toujours type "entier" apres si il y a que cela a modifier dans la bdd et que le soft tourne pas de soucis mais lesquel

  16. #16
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Surtout ne pas changer un truc qui fonctionne...

  17. #17
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Surtout ne pas changer un truc qui fonctionne...
    J' quand même touché au truc qui fonctionne ! Mais sur une copie tant avec le soft que la Bdd.
    Dans le soft il y a une page qui affiche tout les inscrits avec "code deposant, nom, prenom. La on choisis le code a modifier via une case a remplir, ça nous affiche un formulaire complet du XX deposant, la ca devrais faire un update la bdd !

    Le soucis le soft me dit c 'est fait, sauf que aucune action a été faite

  18. #18
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Du moment que tu as une sauvegarde, ça va !

    Pour ton UPDATE pas pris en compte, difficile de dire sans examiner le code, mais comme tu as parlé de 105 pages, chu pas très motivé...

    Tu as peut-être à gagner en t'intéressant au "INSERT...ON DUPLICATE UPDATE" (https://sql.sh/cours/insert-into/on-duplicate-key). Pour ton INSERT :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO deposant (code_deposant, nom, prenom, rue, code_postal, ville, date_creation, tel, email, association, Livres, DVD, CD, Note) 
    			VALUES ('" . $code_deposant . "', '" . $nom . "','" . $prenom . "','" . $rue . "','" . $code_postal . "','" . $ville . "', NOW(),'" . $tel . "','" . $email . "','" . $association . "','" . $Livres . "','" . $DVD . "','" . $CD . "','" . $Note . "')";
    , ça donnerait
    Code php : 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
    $sql = "
    INSERT INTO deposant (code_deposant, nom, prenom, rue, code_postal, ville, date_creation, tel, email, association, Livres, DVD, CD, Note) 
        VALUES('" . $code_deposant . "', '" . $nom . "','" . $prenom . "','" . $rue . "','" . $code_postal . "','" . $ville . "', NOW(),'" . $tel . "','" . $email . "','" . $association . "','" . $Livres . "','" . $DVD . "','" . $CD . "','" . $Note . "' ) 
    ON DUPLICATE KEY UPDATE 
    code_deposant = " . $code_deposant . " ,
    nom = " . $nom . " , 
    prenom = " . $prenom . " ,
    rue = " . $rue . " ,
    code_postal = " . $code_postal . " ,
    ville = " . $ville . " , 
    date_creation = NOW() ,
    tel = " . $tel . " ,
    email = " . $email . " ,
    association = " . $association . " ,
    Livres = " . $Livres . " ,
    DVD = " . $DVD . " ,
    CD = " . $CD . " ,
    Note = " . $Note . " ;
    ";

  19. #19
    Membre averti
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Par défaut
    Bonjour Laurent,
    Je me doute bien que tout reprendre n'est pas motivant, surtout avec la météo actuel cela n’incite pas a rester enfermé.

    Je test ta proposition, sinon voici les fichiers de recherche et d'update.

    concernant les 3 pages concerné pour l'a recherche et l'update
    la 1ere : amend_deposant.php :affiche code deposant , nom, prenom de la table "deposant" avec une case pour indiquer le code_ deposant a modifier.
    la 2eme : amend_deposant_1.php : affiche toute les données d'un déposant suivant le code indiqué précédemment, permettant de modifier tout les champs.
    la 3eme : amend deposant_2.php : devrais nous afficher, la mise a jour en nous indiquant que cela est fait.

    c'est les fichier copier de l'origine donc aucun problème de modification.

    mis les fichier sur transfernow :https://www.transfernow.net/dl/20231001XlDuCtpV

    Encore merci pour l'aide.

  20. #20
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Quelques remarques avant d'aller dormir :

    - on voit bien que ce code est vieux car y a pleins de balises ou attributs qui n'existent plus dans les versions actuelles de PHP : balise <font> ou attribut align dans <td align="left">.

    - il ne faut pas faire de $sql="SELECT * FROM ".$table..... A la place de *, mettre la liste des colonnes.

    - Quand je te parlais, au post #18, de "ON DUPLICATE UPDATE", je pense que tu as vraiment à y gagner à condition de bien avoir une clé primaire dans ta table (code_deposant je crois)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. Modifier la structure dune Table
    Par DevServlet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/06/2007, 09h24
  2. Export partiel toutes tables sur critère ?
    Par aprosper dans le forum Administration
    Réponses: 1
    Dernier message: 12/01/2007, 08h59
  3. [VB.Net]Une fenêtre qui montre le contenu d’une table.
    Par yassin101 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/11/2006, 21h32
  4. Possibilité de passer le nom d’une table en variable ??
    Par nicolas310380 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 21/02/2006, 14h12
  5. Réponses: 2
    Dernier message: 18/08/2005, 12h42

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