begin process at 2012 05 28 18:49:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

comment faire ma relation ??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment faire ma relation ??

mercredi 17 décembre 2008 à 17:47:57 | comment faire ma relation ??

krustypop

Bonjour,

dans le cadre d'un projet informatique, je voudrais mettre en place une appli web en php/mysql permettant de gérer le stock de consommable de l 'entreprise ou je travaille.
J'ai décomposer ma bdd en 3 tables : utilisateur, printers(regroupant imprimantes, copieurs et fax), et type_cons(regroupant les différents types de consommables,leurs références et leur quantité disponible).
Ma question est donc la suivante: comme pour une imprimantes on peut avoir plusieurs types de consommables (Exemple: pour une imprimante, j'ai un toner noir de référence .... et de quantité ..., j'ai aussi un toner cyan de ref ... et de quantité ... , un toner magenta .... etc bref vous avez compris ou je voulais en venir ;-))J'en arrive à ma question, je voudrais regrouper dans un tableau la marque et modele de mon imprimante puis ds ce meme tableau tout les consommables associés à cette imprimantes ainsi que leur quantités, mais étant en phase d'apprentissage de PHP/MySQL, je ne sais pas trop comment arriver à réunir toutes ces informations dans un tableau unique, je ne comprends pas comment rélier ces 2 tables meme avec des jointures.
Voila si quelqu'un aurait la bonté de m'aiguiller sa serait très aimable de ca part.
Sur ceux bonsoir les artistes !!
mercredi 17 décembre 2008 à 18:41:25 | Re : comment faire ma relation ??

kohntark

Membre Club
Réponse acceptée !
Salut,

Un peu en vrac :
champs utilisateur :
    - id (un identifiant unique dans ta table)
    - printer_id (correspond au champ id de la table printers que possède l'utilisateur)
    - name
    - first_name
    - ...

champs printers :
    - id (un identifiant unique dans ta table)
    - trademark (canon, lexmark, ...)
    - model (modèle de l'imprimante)
    - ...
  
champs type_cons :
    - id (un identifiant unique dans ta table)
    - model (sur ce champ tu feras la liaison avec le champ model de la table printers)
    - type_cons (type de consommable)
    - color
    - ...

// pour l'utilisateur "id utilisateur"
$user_id = '[ton id utilisateur]';
$sql = "
SELECT type_cons.type_cons, printers.trademark, printers.model, utilisateur.name, utilisateur.first_name
FROM utilisateur, printers, type_cons
WHERE utilisateur.printer.id = printers.id AND type_cons.model = printers.model
AND utilisateur.id = '$user_id'
";
if (false === $q = mysql_query($sql)) die (mysql_error());

while ($r = mysql_fetch_array($q)) {
    // construction du tableau
}

Il y a peut être quelques erreurs qui se sont glissées par ci par là, je n'ai pas contrôlé et je n'ai pas testé.

Tiens nous au courant,

Kohntark-
mercredi 17 décembre 2008 à 19:11:51 | Re : comment faire ma relation ??

malalam

Administrateur CodeS-SourceS
Hello,

je ne suis pas d'accord : une imprimante accepte plusieurs types de consommable...mais un type de consommable peut aussi fonctionner sur plusieurs imprimantes.
La relation est de type n-n.
Il faut donc une table de jointure avec printer_id et consom_id.
Et à priori, idem pour les utilisateurs et les imprimantes. Il n'y a pas de raison pour qu'un utilisateur n'ait forcément qu'une seule imprimante.
mercredi 17 décembre 2008 à 19:21:34 | Re : comment faire ma relation ??

krustypop

Salut et merci de votre participation ^^
je ne suis pas d'accord avec toi car un type de consommable possède une référence et ne peut être utiliser que pour un seul modèle d'imprimante.
Es-u d'accord ?
mercredi 17 décembre 2008 à 19:34:20 | Re : comment faire ma relation ??

malalam

Administrateur CodeS-SourceS
Ben non :-)
Un de mes clients est un GROS du matériel et des consommables d'impression, et je peux t'assurer que la plupart de leurs cartouches (sans parler de leurs papiers) peuvent fonctionner sur plusieurs modèles d'imprimantes (modèles proches certes, mais étant des références différentes néanmoins).
Après, si tu es certain que dans TON parc, cela n'arrivera pas, tu peux utiliser une relation 1-n en effet. Mais dans tous les cas, je ferais la jointure sur un id, pas sur la référence : c'est toujours plus rapide avec un entier qu'avec un champ de type chaîne.
mercredi 17 décembre 2008 à 19:49:15 | Re : comment faire ma relation ??

krustypop

Merci de ton aide, par contre je ne comprends pas pourquoi il y a utilisateur dans la jointure, en fait ma table utilisateur sert juste à faire une authentification, pour sécuriser un minimum le site.
et merci encore je vais tester ce système
mercredi 17 décembre 2008 à 19:53:11 | Re : comment faire ma relation ??

malalam

Administrateur CodeS-SourceS
Oh chais pas, j'ai suivi kohntark (t'aurais pas pu faire plus simple comme pseudo? Je m'y suis repris à 3 fois!!) qui a associé une imprimante à un utilisateur, ce qui pouvait sembler logique. Si aucun rapport, alors oublie.
mercredi 17 décembre 2008 à 19:56:15 | Re : comment faire ma relation ??

krustypop

oui c'est vrai que c'est logique je m'en servirai peut être par la suite !!
merci
mercredi 17 décembre 2008 à 20:01:24 | Re : comment faire ma relation ??

krustypop

J'ai une autre question,(désolé ^^) j'utilise easyphp et donc phpmyadmin pour la bdd. Est ce que le simple faite de mettre le champ model dans la table type_cons va me faire ma relation entre les 2 tables ???
Merci encore!
mercredi 17 décembre 2008 à 20:20:53 | Re : comment faire ma relation ??

krustypop

Merci beaucoup, mes requêtes marchent à la perfection, par contre lors de l'affichage du tableau il va falloir que je trouve un moyen de n'afficher que la partie type de consommable dans le tableau et ne pas répéter sur chaque ligne la même marque associé et le même modèle. Avez vous une idée ??

1 2

Cette discussion est classée dans : tableau, imprimantes, quantité, consommables, toner


Répondre à ce message

Sujets en rapport avec ce message

Récupérer le résultat d'une requète pour l'afficher dans un tableau??? [ par DJ'Ska & Dreams... ] Mon problème est le suivant: j'arrive à me connecter à ma base mySQL, lorsque j'execute une requète et que je souhaite afficher mes résultats, mes rés Afficher les données dans un tableau ? [ par inceV ] Contenant 2 lignes et 1 seule cellule :c'est à dire :- 1ère ligne où je veux afficher le titre de l'article par exemple,-2ème ligne où je veux affiche Tableau......Help [ par benett ] Bonjour à tous,comment peut-on cacher une cellule dans un tableau en cliquant sur un lien, et comment faire l'inverse également toujours via le même p filtrer un tableau URGENT [ par flyersy ] je récupère un résultat MySQL dans un tableau1 dont une des colonne contient un identifiant et une autre une chaîne "chem" de type 1,52,4,8. Je concat comment afficher sous forme de tableau [ par Xime ] bonjourvoila j'aimerais savoir comment afficher mes données que je recupere de ma base de données sous forme de tableau (la taille sera en fonction du tri tableau 2 dimensions [ par lebobby ] Bonjour je voudrais savoir comment je pourrais faire pour trier ce tableau :$tab[0]=array("i"=>"23", "c" => "rge", "date" =>'2002-08-03 12:00:00');$ta tableau genere automatiquement avec mysql [ par maivg ] bonjoursvoila je cherche un script pour genere un tableau de 4 sur 5 avec ma base de donne qui ne contient qu'un seul champs.help helpmerci et A+ alimenter un tableau avec des variables de session [ par pichoro ] bonjour,voila mon probleme, je voudrais recuperer des variables et les stocker en tant que variables de session dans un tableau array();.j'ai donc un Taille max d'un tableau [ par ceeno ] Voila je cherche a definir la largeur max d'un tableau parceke lorske l'on fait comme cecica n'indike ke la taille min et si le tableau contient une l passer un tableau à une autre page [ par dimi ] Etant un programmeur débutant, peut-on m'expliquer comment via la fonction "onchange " de select, je peux passer un tableau à une autre page php?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,514 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales