Bonjour tout le monde,
Alors voilà j'ai formulaire avec différent champ tel que:
Société
Type de machine
Type d' OS
Modèle de la machine
Nom de la machine dans le domaine
Programme installé
Autre remarque
Puis une base de donné composé ainsi:
Donc ce que je désire en faîtes c'est après que le formulaire est été remplis une requete SQL recherche dans la BDD les machines qui par exemple appartiennent à la société ou alors sont de type machine X ou avec L'OS x ou encore ont le programme X ...
J'ai essayé mais à chaque fois il me renvoie toutes les machines présentes et non pas seulment celle dans le critère/
Voilà les différente requête que j'ai effectué:
là j'ai trop de de machine et en plus en double voir triple
là j'ai carement rien
là j'ai pas de double mais trop de résultat par rapport au critère de restriction et puis j'ai seulment les id_machine alors qu'il me faut tout les champ
J'espère pouvoir le faire avec une seule requête mais si c'est impossible dîtes le.
Si je suis pas très claire dîtes le tout de suite.
Merci d'avance pour votre aide
Alors voilà j'ai formulaire avec différent champ tel que:
Société
Type de machine
Type d' OS
Modèle de la machine
Nom de la machine dans le domaine
Programme installé
Autre remarque
Puis une base de donné composé ainsi:
Code:
--
-- Structure de la table `machine`
--
CREATE TABLE `machine` (
`id_machine` varchar(255) NOT NULL,
`id_societe` int(255) NOT NULL,
`id_OS` int(255) NOT NULL,
`id_T_machine` int(255) NOT NULL,
`modele` varchar(255) default NULL,
`Ip` varchar(255) default NULL,
`Masque` varchar(255) default NULL,
`passserrelle` varchar(255) default NULL,
`DNS` varchar(255) default NULL,
PRIMARY KEY (`id_machine`),
KEY `id_societe` (`id_societe`),
KEY `id_T_machine` (`id_T_machine`),
KEY `id_OS` (`id_OS`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Structure de la table `os`
--
CREATE TABLE `os` (
`id_OS` int(255) NOT NULL auto_increment,
`Nom_OS` varchar(255) default NULL,
PRIMARY KEY (`id_OS`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Structure de la table `societe`
--
CREATE TABLE `societe` (
`id_societe` int(255) NOT NULL auto_increment,
`Nom` varchar(255) default NULL,
`Ip_internet` varchar(15) default NULL,
PRIMARY KEY (`id_societe`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Structure de la table `type_machine`
--
CREATE TABLE `type_machine` (
`id_T_machine` int(255) NOT NULL auto_increment,
`Nom` varchar(255) NOT NULL,
PRIMARY KEY (`id_T_machine`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `machine`
--
ALTER TABLE `machine`
ADD CONSTRAINT `machine_ibfk_1` FOREIGN KEY (`id_societe`) REFERENCES `societe` (`id_societe`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `machine_ibfk_2` FOREIGN KEY (`id_T_machine`) REFERENCES `type_machine` (`id_T_machine`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `machine_ibfk_3` FOREIGN KEY (`id_OS`) REFERENCES `os` (`id_OS`) ON DELETE CASCADE ON UPDATE CASCADE;
Donc ce que je désire en faîtes c'est après que le formulaire est été remplis une requete SQL recherche dans la BDD les machines qui par exemple appartiennent à la société ou alors sont de type machine X ou avec L'OS x ou encore ont le programme X ...
J'ai essayé mais à chaque fois il me renvoie toutes les machines présentes et non pas seulment celle dans le critère/
Voilà les différente requête que j'ai effectué:
Code:
SELECT * FROM societe,machine,os,type_machine where os.Nom_OS='$T_OS' OR societe.Nom='$societe' OR type_machine.Nom='$T_machine' OR machine.modele LIKE '%$modele%' or machine.Nom_machine_domaine LIKE '%$nom%' OR machine.Programme LIKE '%$programme%' OR machine.autre LIKE '%$autre%' ORDER BY id_machine DESC
Code:
SELECT * FROM societe,machine,os,type_machine where os.Nom_OS='$T_OS' OR societe.Nom='$societe' OR type_machine.Nom='$T_machine' OR machine.modele LIKE '%$modele%' or machine.Nom_machine_domaine LIKE '%$nom%' OR machine.Programme LIKE '%$programme%' OR machine.autre LIKE '%$autre%' AND os.is_os=machine.id_os AND machine.id_societe=societet.id_societe AND type_machine.id-T-machine=machine.id_T_machine ORDER BY id_machine DESC
Code:
SELECT distinct(id_machine) FROM societe,machine,os,type_machine where os.Nom_OS='$T_OS' OR societe.Nom='$societe' OR type_machine.Nom='$T_machine' OR machine.modele LIKE '%$modele%' or machine.Nom_machine_domaine LIKE '%$nom%' OR machine.Programme LIKE '%$programme%' OR machine.autre LIKE '%$autre%' ORDER BY id_machine DESC
J'espère pouvoir le faire avec une seule requête mais si c'est impossible dîtes le.
Si je suis pas très claire dîtes le tout de suite.
Merci d'avance pour votre aide