Appel de résultat de table
Résolu
loutry06
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je continue dans le développement de mon site et je reviens vers vous une nouvelle fois car je coince sur un nouveau problème.
Je vous explique :
Je cherche à faire un lien entre 2 tables.
La première contient tous mes personnages
La seconde contient les techniques des personnages
Bien évidemment, je cherche à lier une technique à un personnage d'où le id_perso à la fin.
Jusque là, je pense pas avoir tort.
Le souci, c'est qu'un ou plusieurs personnages ont les mêmes techniques. Et j'aimerai savoir si déjà dans un premier temps, dans la colonne id_perso de ma deuxième table, on puisse mettre des valeurs comme 4;34;56 (ces nombres-là étant les id des personnages)
Si c'est le cas, dans la structure de ma table, le type de mon champ doit être un Varchar ? Ou alors autre chose ? (Je pense à Varchar, mais sans conviction)
Donc toujours si je mets dans ma table les différentes réponses dans ma table "4;34;56 ", comment les appeler sur ma page ?
J'ai tenté ça
Sachant que le $id a été obtenu plus haut avec
Je bugue un peu car certaines fois, ça fonctionne et d'autres noms... Peut-on avoir quelque chose de plus propre svp ou alors une façon de mieux faire ?
Je vous remercie par avance.
Al'
je continue dans le développement de mon site et je reviens vers vous une nouvelle fois car je coince sur un nouveau problème.
Je vous explique :
Je cherche à faire un lien entre 2 tables.
La première contient tous mes personnages
id_perso; nom_perso
La seconde contient les techniques des personnages
id_tech;nom_tech;id_perso
Bien évidemment, je cherche à lier une technique à un personnage d'où le id_perso à la fin.
Jusque là, je pense pas avoir tort.
Le souci, c'est qu'un ou plusieurs personnages ont les mêmes techniques. Et j'aimerai savoir si déjà dans un premier temps, dans la colonne id_perso de ma deuxième table, on puisse mettre des valeurs comme 4;34;56 (ces nombres-là étant les id des personnages)
Si c'est le cas, dans la structure de ma table, le type de mon champ doit être un Varchar ? Ou alors autre chose ? (Je pense à Varchar, mais sans conviction)
Donc toujours si je mets dans ma table les différentes réponses dans ma table "4;34;56 ", comment les appeler sur ma page ?
J'ai tenté ça
<?php $sqlpersotechnique = "SELECT * FROM t_perso_technique WHERE id_perso LIKE '$id;%' $resultpersotechnique = mysql_query( $sqlpersotechnique, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); ?>
Sachant que le $id a été obtenu plus haut avec
$id = $_GET['id'];
Je bugue un peu car certaines fois, ça fonctionne et d'autres noms... Peut-on avoir quelque chose de plus propre svp ou alors une façon de mieux faire ?
Je vous remercie par avance.
Al'
A voir également:
- Appel de résultat de table
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Table ascii - Guide
- Table des matières word - Guide
- Appel privé - Guide
- Resultat foot - Télécharger - Vie quotidienne
4 réponses
salut !
En effet, jusque là tout va bien ! Enfin presque, si tu souhaite faire une liaison n-n (ton cas : 1 user peu avoir n tech, et 1 tech peu être attribué a plusieurs users) le mieux est d'avoir une troisième table pour la liaison (histoire d'éviter des sous traitements pour récupérer les données) :
La première contient tous mes personnages
La seconde contient toutes les techniques
La troisième contient les couple technique/personnage : (ou nomera COUPLE pour l'exemple)
de cette manière ca sera plus simple de lire ou écrire/modifier les données, mais surtout tu pourra rajouter des contraintes (par exemple ne pas ajouter un couple technique/personnage si l'un des deux n'existe pas).
récupérer les résultats :
naga
Jusque là, je pense pas avoir tort.
En effet, jusque là tout va bien ! Enfin presque, si tu souhaite faire une liaison n-n (ton cas : 1 user peu avoir n tech, et 1 tech peu être attribué a plusieurs users) le mieux est d'avoir une troisième table pour la liaison (histoire d'éviter des sous traitements pour récupérer les données) :
La première contient tous mes personnages
id_perso; nom_perso
La seconde contient toutes les techniques
id_tech;nom_tech
La troisième contient les couple technique/personnage : (ou nomera COUPLE pour l'exemple)
id_perso;id_tech
de cette manière ca sera plus simple de lire ou écrire/modifier les données, mais surtout tu pourra rajouter des contraintes (par exemple ne pas ajouter un couple technique/personnage si l'un des deux n'existe pas).
récupérer les résultats :
<?php $sqlpersotechnique = "SELECT personnages.nom_perso ,techniques.nom_tech FROM personnages , techniques , COUPLE WHERE COUPLE.id_perso =' . $id . ' AND techniques.id_tech = COUPLE.id_tech and personnages.id_perso = COUPLE.id_perso $resultpersotechnique = mysql_query( $sqlpersotechnique, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); ?>
naga
Bonjour Naga et merci pour ta réponse rapide.
Du coup, dans ma troisième table je devrais insérer toutes les combinaisons possibles ?
Et la construire sous cette forme :
id_couple; id_perso; id_tech
avec id_couple INT Primary Auto
id_perso : int
id_tech : int ?
merci par avance =)
al'
Du coup, dans ma troisième table je devrais insérer toutes les combinaisons possibles ?
Et la construire sous cette forme :
id_couple; id_perso; id_tech
avec id_couple INT Primary Auto
id_perso : int
id_tech : int ?
merci par avance =)
al'
alors l'id_couple n'est pas nécessaire dans le sens où tu peux déclarer le couple lui même comme unique , par exemple l'utilisateur 2 pour la technique 3 n'apparaîtra qu'une fois, il n'est donc pas indispensable de générer un identifiant unique de couple (sauf bien sûr si tu en as un intérêt par la suite, comme une tâche à effectuer par exemple, et du coup tu peux attribuer ton coulpe).
Ensuite, ta troisième table contiendra les combinaisons possibles EXISTANTES (pas toutes 'toutes' ), c'est à dire que si tu veux attribuer à l'utilisateur 1 la tâche 2, tu insère ton couple dans cette table (1;2). Et ensuite, pour retirer une technique d'un utilisateur, il te suffira de donner les deux identifiants (user+tech)
Ensuite, ta troisième table contiendra les combinaisons possibles EXISTANTES (pas toutes 'toutes' ), c'est à dire que si tu veux attribuer à l'utilisateur 1 la tâche 2, tu insère ton couple dans cette table (1;2). Et ensuite, pour retirer une technique d'un utilisateur, il te suffira de donner les deux identifiants (user+tech)