[mysql] Lier 2 tables
Résolu/Fermé
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
-
21 mai 2007 à 11:57
fras34 Messages postés 92 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 27 mai 2007 - 27 mai 2007 à 11:57
fras34 Messages postés 92 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 27 mai 2007 - 27 mai 2007 à 11:57
A voir également:
- [mysql] Lier 2 tables
- Tables des matières word - Guide
- Mysql community server - Télécharger - Bases de données
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Tables ascii - Guide
13 réponses
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
21 mai 2007 à 15:52
21 mai 2007 à 15:52
Mysql ne gere pas automatiqument les relations.
C'est a toi de faire la requete qui s'impose.
NB: je ne suis pas certain que tu ai besoin de l'ip dans la table relation
Si tu met l'ip dans la table relation c'est encore plus simple :
C'est a toi de faire la requete qui s'impose.
NB: je ne suis pas certain que tu ai besoin de l'ip dans la table relation
SELECT carte.IS_C FROM carte, equipements, relation WHERE equipements.ip='IP' and relation.ID_E = equipements.ID_E and relation.ID_C = carte.IS_C
Si tu met l'ip dans la table relation c'est encore plus simple :
SELECT relation.ID_C FROM relation WHERE ip ='IP'
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
21 mai 2007 à 16:25
21 mai 2007 à 16:25
ok merci beaucoup je vais essayer ca, et enlever donc IP.
Parce que sans te le cacher je comprend plus ton premier exemple que ton deuxieme ;).
Merci encore.
P.S.: en fait je me suis trompé dans ma table Carte , ce n'est pas IS_C mais ID_C, ca change rien au script que tu ma donné j'espere ...?????
Parce que sans te le cacher je comprend plus ton premier exemple que ton deuxieme ;).
Merci encore.
P.S.: en fait je me suis trompé dans ma table Carte , ce n'est pas IS_C mais ID_C, ca change rien au script que tu ma donné j'espere ...?????
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
21 mai 2007 à 16:29
21 mai 2007 à 16:29
Dans ta table relation tu a l'id de tes cartes et l'ip du chassis
donc tu selectionne toutes les id de carte pour lesquelles l'IP du chassis correspond à celui recherché.
mais bon tu doublonne l'info IP ce qui n'est pas "propre" aux regards des standard de dev, mais ça peut se reveler utile (economie de ressource sur les requetes)
donc tu selectionne toutes les id de carte pour lesquelles l'IP du chassis correspond à celui recherché.
mais bon tu doublonne l'info IP ce qui n'est pas "propre" aux regards des standard de dev, mais ça peut se reveler utile (economie de ressource sur les requetes)
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
21 mai 2007 à 16:57
21 mai 2007 à 16:57
minute j'ai rien pigé en fait, deja j'ai enlever "IP" dans ma table requete pour simplifier les choses, et pour que ce soit propre.
a partir de la qu'est ce que je dois changer pour que mon script fonctionne .
voila ce ke j'ai mi
a partir de la qu'est ce que je dois changer pour que mon script fonctionne .
voila ce ke j'ai mi
SELECT carte.ID_C FROM carte, equipements, relation WHERE equipements.ip='IP' and relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
21 mai 2007 à 17:01
21 mai 2007 à 17:01
SELECT carte.ID_C FROM carte, equipements, relation WHERE equipements.IP='192.168.0.1' and relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C
remplace 192.168.0.1
par l'ip recherché.
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
21 mai 2007 à 17:09
21 mai 2007 à 17:09
ok d'accord, j'ai compris , mais maintenan si je veux en plus pouvoir rechercher tte les cartes avec juste le nom de l'equipememnt c'est le meme systeme , il faut juste que je rajoute
si j'ai bien compris ça donne ca!
non?
$nom=$_POST['nom']; $IP=$_POST['IP']; SELECT carte.ID_C FROM carte, equipements, relation WHERE equipements.IP=$IP and equipement.nom=$nom and relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C
si j'ai bien compris ça donne ca!
non?
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
21 mai 2007 à 17:24
21 mai 2007 à 17:24
C'est ça mais fais gaffe à la syntaxe
equipement.nom c'est un varchar ou qqch c/ ça donc il faut des guillemets
mysql_query("select .... where ... and equipement.nom like '".$nom."' ... ");
equipement.nom c'est un varchar ou qqch c/ ça donc il faut des guillemets
mysql_query("select .... where ... and equipement.nom like '".$nom."' ... ");
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
21 mai 2007 à 17:29
21 mai 2007 à 17:29
ok , merci bien pour tout fras34, je vai mettre ca et continuer à rajouter les longue lignes qu'il me reste et je testerai le tout .
Pour l'instant je peux pas.je met resolu pour l'instant, et on vera apres mon test.
bopnne soirée et merci encore.
Pour l'instant je peux pas.je met resolu pour l'instant, et on vera apres mon test.
bopnne soirée et merci encore.
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
22 mai 2007 à 10:17
22 mai 2007 à 10:17
Bonjour
j'ai finit de mettre mes requete sql pour integrer mes données dans ma base et j'en suis finalement arrivé à notre fameuse requete de liaison .
bein script ne fonctionne pas :S
voila ce ke jai mi
(je mete tte la partie comme ca c'est vite vu)
voila bein le souci vien de la ligne
donc si qqun peut me dire d'ou viens le probleme ce serait tres tes gentil ;).
Mercii
j'ai finit de mettre mes requete sql pour integrer mes données dans ma base et j'en suis finalement arrivé à notre fameuse requete de liaison .
bein script ne fonctionne pas :S
voila ce ke jai mi
(je mete tte la partie comme ca c'est vite vu)
set_time_limit(240); $IP2 =$_POST['IP2']; $nom2=$_POST['nom2']; $db = mysql_connect('*****', '****', '*****') or die('Erreur de connexion '.mysql_error()); mysql_select_db('projet',$db) or die('Erreur de selection '.mysql_error()); $select ="SELECT carte.ID_C FROM carte, equipements, relation WHERE relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C or die('Erreur de liaison '.mysql_error())"; mysql_query($select)or die('Erreur SQL dans la table de liaison !'.$select.'<br>'.mysql_error()); for ($i=1;$i<=16;$i++) { $description=lire_ligne('reponse_snmp_motorola.txt',$i+16); $serial=lire_ligne('reponse_snmp_motorola.txt',$i+32); $HW=lire_ligne('reponse_snmp_motorola.txt',$i+48); $SW=lire_ligne('reponse_snmp_motorola.txt',$i+64); $sql = "INSERT INTO cartes(ID_C, description, serial, HW_version, SW_version) VALUES('','$description','$serial','$HW','$SW')"; mysql_query($sql) or die('Erreur SQL dans la table Carte !'.$sql.'<br>'.mysql_error()); } $sql2 = "INSERT INTO equipements(ID_E, IP, marque, nom) VALUES('','$IP2','Motorola','$nom2')"; mysql_query($sql2) or die('Erreur SQL dans la table Equipement !'.$sql.'<br>'.mysql_error()); echo 'Vos infos on été ajoutées.'; mysql_close();
voila bein le souci vien de la ligne
$select ="SELECT carte.ID_C FROM carte, equipements, relation WHERE relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C or die('Erreur de liaison '.mysql_error())";
donc si qqun peut me dire d'ou viens le probleme ce serait tres tes gentil ;).
Mercii
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
22 mai 2007 à 15:51
22 mai 2007 à 15:51
hééého personne peut m'aider??? :(
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
23 mai 2007 à 09:07
23 mai 2007 à 09:07
upp
alucard67
Messages postés
37
Date d'inscription
mercredi 2 mai 2007
Statut
Membre
Dernière intervention
1 juin 2007
3
23 mai 2007 à 16:45
23 mai 2007 à 16:45
alors personne ????
aller svp je seche total là!!!
aller svp je seche total là!!!
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
27 mai 2007 à 11:51
27 mai 2007 à 11:51
Salut,
qd on fait du code il faut savoir lire, lire et relire encore.
De monbreux classique vienne planter ton code.
les oublis et faute de frape sont les plus courrants. en particulier pour tout ce qui necessite une ouvertue et une fermeture.
ex: { } [ ] ( ) " " ' ' ....
Et là visibement c'est le cas. tu as oublié de fermer les ") de ta requete
A+
qd on fait du code il faut savoir lire, lire et relire encore.
De monbreux classique vienne planter ton code.
les oublis et faute de frape sont les plus courrants. en particulier pour tout ce qui necessite une ouvertue et une fermeture.
ex: { } [ ] ( ) " " ' ' ....
Et là visibement c'est le cas. tu as oublié de fermer les ") de ta requete
A+
fras34
Messages postés
92
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
27 mai 2007
36
27 mai 2007 à 11:57
27 mai 2007 à 11:57
Je suis allé un peu vite.
c'est du n'importe quoi!
faut aussi lire les documentations; celle de php est très bien faite.
donc aucune excuse.
s'execute à la suite de l'echec de la requete mysql.
$select ="SELECT carte.ID_C FROM carte, equipements, relation WHERE relation.ID_E = equipements.ID_E and relation.ID_C = carte.ID_C or die('Erreur de liaison '.mysql_error())";
c'est du n'importe quoi!
faut aussi lire les documentations; celle de php est très bien faite.
donc aucune excuse.
or die('Erreur de liaison '.mysql_error())
s'execute à la suite de l'echec de la requete mysql.
mysql_query("..") or die("..");