Re: ajouter une donnée dans le champ d'une table MySQL
Le samedi 14 mars 2009 20:43, Stephane Bortzmeyer a écrit : > > C'est pourquoi, les critiques sur ma méthode n'avaient pas lieu > > d'être, et sûrement pas sur ce ton. -- > Ah, au fait, un excellent article sur la difficulté à dire NON en > informatique : > http://www.christian-faure.net/2009/03/14/la-proletarisation-dans-les-societes-informatiques/ > d'où j'extrais cette phrase qui dit exactement la même > chose que l'excellent message de Sylvain Sauvage mais sur un ton plus > diplomatique : > « La solution que vous demandez et la façon dont vous voulez qu'elle > soit réalisée relève d'une profonde erreur d'appréciation. » > Je ne peux pas dire mieux au génial concepteur de l'utilisation de > CONCAT pour créer une base SQL qui ne soit même pas en première forme normale. La profonde erreur d'appréciation vient très certainement du génial concepteur de ce mail, avec CONCATénation de persistance à tromper les prolétaires (de l'informatique). antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Re: ajouter une donnée dans le champ d'une table MySQL
Le 14317ième jour après Epoch, Stephane Bortzmeyer écrivait: [...] > Ah, au fait, un excellent article sur la difficulté à dire NON en > informatique : > > http://www.christian-faure.net/2009/03/14/la-proletarisation-dans-les-societes-informatiques/ > > d'où j'extrais cette phrase qui dit exactement la même > chose que l'excellent message de Sylvain Sauvage mais sur un ton plus > diplomatique : > > « La solution que vous demandez et la façon dont vous voulez qu'elle > soit réalisée relève d'une profonde erreur d'appréciation. » Argh, je pensais ce fil définitivement enterré. Il n'est pas toujours bon de réveiller les mauvais démons quand ils se sont endormis sur leurs oreillers remplis de "SOA avec du SOAP, de l'ESB et du MDM" -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Re: ajouter une donnée dans le champ d'une table MySQL
Le lundi 2 mars 2009 11:37, mathias dufresne a écrit : > Si j'a bien suivi il s'agit de lier plusieurs valeurs d'un même type de > données à une autre donnée (d'un autre type). > Livre -> auteur1 > |->auteur2 > |-> auteur3 > Je ne suis pas DBA à vrai dire, mais s'il s'agit bien de ce type de > correspondance, une petite table avec identifiants externe me semble assez > indiqué, ça fonctionne avec InnoDB sur mysql... > Ta table entre les deux tables "auteurs" et "livres" contiendra alors > plusieurs enregistrements du type : > livre1 + auteur1 > livre1 + auteur2 > livre1 + auteur3 > Facile à mettre à jour, recherche peu gourmande... > S'il s'agit bel et bien de ce type de correspondances entre des données, je > me rallierai à ceux te disant qu'il conviendrait certainment de repenser ta > DB. Cordialement, mathias Merci de ta réponse sereine. Il faut oublier l'exemple "auteur" que j'avais donné. Il s'agit d'un champ qui reçoit des infos courtes via la fonction "CONCAT". J'utilise cette méthode de manière *exceptionnelle* sur UN SEUL champ. Mon objectif était de connaître cette fonction et de savoir l'appliquer. Malgré les aléas de critiques, elle me satisfait pleinement et je remercie ceux qui me l'ont indiquée et m'ont apporté leur aide. antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
re : ajouter une donnée dans le champ d'une table MySQL
Le lundi 2 mars 2009 09:29, Rémi Vanicat a écrit : > Elle est exagéré, pas hors de propos. Le fait de concaténer dans un seul > champs les différents auteurs d'un même livre est une mauvaise > utilisation de mysql. Tu vas VRAIMENT galérer pour supprimer une valeur > de ton champ (car je suppose que c'est ta prochaine question...) - > Je pense que tu surestime l'hostilité. Des gens connaissant le domaine, > avec de l'expérience te dise que la solution que tu veux adopter est > mauvaise, et qu'il faut que tu repense ta base de donnée si tu veux ne > pas avoir de problème dans le futur. Ce n'est pas un agression, ce n'est > pas hostile, c'est un TRÈS bon conseil dans ce cas si. - > je ne vois pas de manque de tolérance dans la réponse de Sylvain > Sauvage, peut-être est telle "rugueuse", mais il a raison, ta méthode > (stocker plusieurs auteurs dans un même champ) va probablement te poser > problème plus tard. > Rémi Vanicat -- J'avais bien réfléchi à mon problème. Cette concaténation de données dans un seul champ est absolument nécessaire et à la fois exceptionnelle dans mon projet. L'exemple que j'avais donné n'avait rien à voir avec la réalité du projet. (c'était juste pour expliquer mon besoin et comprendre la syntaxe) Il s'agit d'un champ de "mémoire" de certaines infos. C'est pourquoi, les critiques sur ma méthode n'avaient pas lieu d'être, et sûrement pas sur ce ton. Si la fonction "CONCAT" existe, "ce n'est pas pour des prunes" et je sais mesurer les limites des méthodes et l'importance du respect de règles dans l'informatique. antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: [debian] Re: [debian] Re: [debian] Re : ajouter une donnée dans le champ d'une table MySQL
anto...@starinux.org a écrit : Peux-tu nous donner tout les champs de ta table "auteur_philo" car je ne saisis pas bien comment se structure celle-ci. Simplifions : Un champ = "numéro_philo" (increment) et un champ = "auteur_philo" Puisque l'incrément est automatique, la méthode suivante devrait fonctionner pour ajouter un nouvel auteur : //il faut se connecter a la base de données $nouvel_auteur = "kant"; // il faudra également vérifier que kant n'existe pas déjà dans la BDD. //si kant n'existe pas déjà, alors on l'ajoute $sql = "INSERT INTO auteur(auteur_philo) VALUES ('$nouvel_auteur')"; if ($requete = mysql_query($sql)) { echo 'Nouvel auteur : '.$nouvel_auteur.' ajouté à la base de données'; } else { echo'Echec lors de l'ajour de '.$nouvel_auteur.' comme nouvel auteur; } Une question : tu stockes tous les auteurs philosophiques dans un seul champ séparé par un espace ??? ou bien sont-ils stockés individuellement dans une ligne pour chacun ??? Dans le cas ou tu stocks tout dans une seul ligne, il sera difficile (mais pas impossible) de vérifier les doublons. Et je suppose qu'ensuite, l'identifiant de l'auteur philo est utilisé pour renseigner le champ auteur dans une table livre. Si je pouvais avoir les 2 méthodes : "séparées par un espace" et "dans une ligne pour chacun". Donc séparer dans un espace, le code serait (mais préfere le stockage 1 ligne, 1 auteur) //il faut se connecter a la base de données $nouvel_auteur = "kant"; // il faudra également vérifier que kant n'existe pas déjà dans la BDD. $sql = SELECT auteur_philo FROM auteur; $requete = mysql_query($sql); $auteur_philo = mysql_result($requete, 0) // le paramètre 0 est pour récupérer la 1ere ligne du résultat de $requete $auteur_philo .= " ".$nouvel_auteur; $sql = "INSERT INTO auteur(auteur_philo) VALUES ('$nouvel_auteur')"; if ($requete = mysql_query($sql)) { echo 'Nouvel auteur : '.$nouvel_auteur.' ajouté à la base de données'; } else { echo'Echec lors de l'ajour de '.$nouvel_auteur.' comme nouvel auteur; } antoine Les scripts n'ont pas été vérifiés, mais ça donne une idée. NE TIENS PAS COMPTE DE CETTE REMARQUE SI JE SUIS A COTE DE LA PLAQUE : Je serai curieux de voir la structure de la BDD (tables et champs) car une table 'auteur_philo' me parait restrictive. Un table 'auteur' avec une table 'type de littérature' qui aurait pour contenu '1=>philo' '2=>policier' '3=>historique'... (je sais pas exactement, ce sont des exemples) et la table 'auteur' aurait un champ 'type de littérature' qui piocherait l'identifiant correspondant dans la table 'type de littérature'. Et encore, un auteur peu avoir plusieurs 'types de littérature' et donc attribuer le 'type de littérature' à un ouvrage plutôt qu'a un auteur ! -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: [debian] Re: [debian] Re: [debian] Re: ajouter une donnée dans le champ d'une table MySQL
> Peux-tu nous donner tout les champs de ta table "auteur_philo" car je ne > saisis pas bien comment se structure celle-ci. Simplifions : Un champ = "numéro_philo" (increment) et un champ = "auteur_philo" > > > Une question : tu stockes tous les auteurs philosophiques dans un seul > champ séparé par un espace ??? ou bien sont-ils stockés individuellement > dans une ligne pour chacun ??? Si je pouvais avoir les 2 méthodes : "séparées par un espace" et "dans une ligne pour chacun" antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: [debian] Re: [debian] Re: ajouter une donnée dans le champ d'une table MySQL
Le dimanche 1 mars 2009 10:38, Frédéric Moinard a écrit : > anto...@starinux.org a écrit : > >>> Est-il possible d'ajouter une donnée, en plus de données déjà > >>> enregistrées, > > Exemple : > > un champ contient : => ajouter "martin" : > martin> > UPDATE `labase`.`latable` SET `nom` = 'albert roger martin' WHERE > `labase`.`nom` = 'albert roger'; > ? -- Je souhaite le faire de manière automatique sans avoir à citer les données contenues du champ : Je reprécise : base = "livres" table = "auteur" champ = "auteur_philo" qui contient déjà : <"albert camus" "alain"> je désire ajouter "kant" dans le champ "auteur_philo" => <"albert camus" "alain" "kant"> update ... ? merci antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: [debian] Re: ajouter une donnée dans le champ d'une table MySQL
Le 14304ième jour après Epoch, anto...@starinux.org écrivait: >> > Est-il possible d'ajouter une donnée, en plus de données déjà >> > enregistrées, > >> C'est super pas clair du tout, ton truc. Tu veux pas donner un exemple >> plus parlant ? > -- > Tu as tronqué ma question ... Normal, c'est une citation que je fais, pas un copier/coller... > Voici ma question de départ : >> Est-il possible d'ajouter une donnée, en plus de données déjà enregistrées, >> dans le champ d'une table MySQL ? Au vu des réponses qui semblent ressortir de ta question, je voudrais quand même éclaircir un truc, si tu permets. Quand tu dis "ajouter une donnée", veux-tu dire: - J'ai un champ qui contient une adresse IP - Il y a déjà une adresse IP dans un enregistrement - Je veux en rajouter une autre dans le même enregistrement. (remplacer "adresse IP" par un autre typage fort du type datetime si nécessaire) Si ce scénario est le bon, alors il me semble que tu te trompes dans l'usage qui est fait. Sinon, alors je me trompe et la fonction CONCAT() est exactement ce qu'il te faut dans le contexte d'une chaine de caractère, par exemple. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: [debian] Re: ajouter une donnée dans le champ d'une table MySQL
> > Est-il possible d'ajouter une donnée, en plus de données déjà > > enregistrées, > C'est super pas clair du tout, ton truc. Tu veux pas donner un exemple > plus parlant ? -- Tu as tronqué ma question ... Voici ma question de départ : > Est-il possible d'ajouter une donnée, en plus de données déjà enregistrées, > dans le champ d'une table MySQL ? > > insérer, remplacer, updater oui mais ajouter ... ? > ajouter et insérer, c'est pas pareil? Non : -Insérer : on enregistre une donnée dans un champ, -Remplacer ou updater : on écrase une donnée existante par une autre, -Ajouter : on garde la ou les données existantes dans le champ en y ajoutant une nouvelle donnée : Exemple : un champ contient : => ajouter "martin" : antoine -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Re: ajouter une donnée dans le champ d'une table MySQL
Le 14303ième jour après Epoch, anto...@starinux.org écrivait: > Bonsoir, > > Est-il possible d'ajouter une donnée, en plus de données déjà > enregistrées, C'est super pas clair du tout, ton truc. Tu veux pas donner un exemple plus parlant ? > insérer, remplacer, updater oui mais ajouter ... ? ajouter et insérer, c'est pas pareil? -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org