8797 sujets

Développement web côté serveur, CMS

bonjour,
je cherche à récupérer certaines données de ma table

Table
ID -- Name -- Depart. -- Mail -- Description -- Groups

412 -- TOTO -- Dep1 -- t@t -- tutu ---------- group1
522 -- TATA -- Dep2 -- a@a -- mimi --------- group1
345 -- TOTO -- Dep4 -- t@t -- tutu ---------- group1
453 -- TOTO -- Dep5 -- t@o -- tutu ---------- group2
763 -- TOTO -- Dep1 -- t@j -- tutu ----------- group2
722 -- TOTO -- Dep6 -- t@j -- tutu ----------- group2

Comment faire pour récupérer toutes les données qui sont classées dans group1 ?
Modifié par Smithow (09 Apr 2011 - 23:26)
Bonjour,

L'ordre SQL est celui ci :
Select ID, Name, Depart., Mail, Description
  From ZeTable
 Where Groups = "group1"
Modérateur
Bonsoir,

Il y a plus simple :


SELECT * FROM Table WHERE groups = 'group1';


De toute évidence, la base de données n'est pas optimale (3FN) !
Modifié par niuxe (09 Apr 2011 - 19:43)
merci, ça marche, mais le problème est qu'il me manque une ligne quand j'affiche les donnée de 'group1'

dans notre exemple, j'ai comme résultat :

group1
412 -- TOTO -- Dep1 -- t@t -- tutu
522 -- TATA -- Dep2 -- a@a -- mimi

[b]345 -- TOTO -- Dep4 -- t@t -- tutu [/b] <= n'est pas affiché

je n'ai pas réussi à résoudre le problème ...
Modifié par Smithow (09 Apr 2011 - 20:08)
Modérateur
Comme je te l'ai dit précédemment, ta table n'est pas optimale et donc je crois que ta ligne qui n'est pas prise en compte doit avoir une écriture différente que group1. Sinon je vois pas et je donne ma langue au chat puisqu'il n'y a pas de raison que ça ne fonctionne pas.
Modérateur
Pour améliorer ta table et te donner une piste à suivre en faisant simple :
*code fait de tête, j'ai pû faire une pétouille...

CREATE TABLE categorie(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	designation VARCHAR(128) NOT NULL
);

CREATE TABLE uneTable (
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	unChamp VARCHAR(128) NOT NULL,
	categorie_id INT NOT NULL,
	CONSTRAINT fk_categorie_id FOREIGN KEY(categorie_id) REFERENCES categorie(id) DELETE ON CASCADE UPDATE ON CASCADE
);
INSERT INTO categorie(designation) VALUES('group1'),('group2');

INSERT INTO uneTable(unChamp,categorie_id) VALUES('une valeur',1),('une autre valeur',2),('encore une autre valeur',1),('et encore une autre valeur',2);


Ta query finale sera :

SELECT *
	FROM categorie,uneTable 
	WHERE
		categorie.id = uneTable.categorie_id
	AND
		categorie.id = 'group1';

Modifié par niuxe (09 Apr 2011 - 22:03)
merci pour le coup de main, je vais l'essayer.

j'ai une dizaine de groupe, et chaque groupe a une ligne en moins

bizarre ...
niuxe, t'avais raison, c'est moi qui déconne, j'ai trouvé la source du problème..

se servir de 2 tables différentes est une bonne idée
merci pour ton aide..
Modifié par Smithow (10 Apr 2011 - 12:23)
Modérateur
Et l'eau,

de rien Smiley smile

Ce n'est pas une bonne idée, mais plutôt une bonne pratique. Cependant, il ne faut pas le faire n'importe comment.

Je t'invite à te documenter sur le sujet.

Bonne journée
Modifié par niuxe (10 Apr 2011 - 10:30)