[resolu]problème avec inner join

Mammouth du PHP | 19672 Messages

12 oct. 2011, 11:09

Regarde ceci ;)

Si avec ça tu ne trouves pas des éléments, je crains de ne pas être d'un très grand secours... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 11:11

Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

12 oct. 2011, 12:00

Désolé Juliette, en journée je n'ai aps trop le temps de m,attarder sur des vidéo pour en vérifier le contenu. Et pour les tutos, je privilégie le mode texte, on peut revenir en arrière beaucoup plus facilement si on a pas compris un truc ou deux. Essaye d'en trouver un qui semble assez clair et reviens poser des questions sur les points ambigus que tu rencontrerais.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 12:29

en fait je ne parlais pas du contenu mais plutot du logiciel: mysql workbench...
fait comme tu peux, c'est déjà très gentil de ta part et merci au forum...
honnêtement je commence a être dépassé, je ne fait du php que depuis 1 mois environ et je me rend compte que la progression est trop rapide pour moi...

bon, je récapitule mon soucis pour être sur de bien comprendre le sens de mes recherches:

j'ai 2 tables qui n'ont rien en commun si ce n'est une partie de l'id d'un champ sur une table (calcul) avec l'id d'un autre champ sur l'autre table (chien)
je dois comparer ces deux tables pour afficher le résultat sans affiché les id primaires
donc je doit lié ces 2 tables avec un nouveau champ sur l'une de ces 2 tables pour pouvoir les comparer
*est-ce bien ça ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

12 oct. 2011, 12:36

MySQl Workbench est un outil de modélisation, celui dont je me sers moi-même du reste, mais pour comprendre comment s'en servir, il faut quand même des bases sur le modèle entité/association. Sommairement, il s'agit de structurer tes données de façon à éviter les redondances inutiles et trop de valeurs NULL également. Jette un coup d’œil dans la FAQ, le tuto de base sur les jointures niveau débutant, j'y explique au départ un point sur la manière de répartir des données et pourquoi : le principe est valable pour toutes les sortes de données que tu as à traiter. Lorsque ton modèle est correctement conçu, tu relies très facilement les données entre elles pour récupérer des blocs d'informations cohérents.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 13:14

bon si je comprend bien, j'ajoute 2 champs a ma table calcul: "id question" pour le n° de la question et "id chien" lui en clé étrangère...
puis je cherche les résultat des question en comparant "id chien" de la table chien et "id chien" de la table calcul ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

12 oct. 2011, 13:48

Pour le principe, c'est ça, mais attention, ça veut dire si tu fait ça qu'un chien ne pourra correspondre qu'à une et une seule question... et ce n'est pas ce que tu cherches. Pas plus qu'une question ne peut concerner qu'un et un seul chien. Donc nous avons une relation où il va falloir intercaler une table relationnelle chien_has_vote avec trois colonnes qui seront trois clés étrangères : d'abord, l'id du chien, ensuite l'id de la question, et enfin l'id du votant. Ces trois colonnes formeront une clé primaire composite. Le résultat basique avec ce système, c'est que pour un votant, il ne pourra voter que pour une question par chien.

Chaque ligne de la table relationnelle aura une valeur unique constitué du triplet des trois colonnes. Éventuellement, tu pourras rajouter une colonne date_vote si tu souhaites conserver cet élément de façon chronologique, et si, par exemple, un votant pourrait à nouveau voter à une autre date avec la même question pour le même chien, alors il faudrait inclure cette colonne de date dans la clé primaire.

Est-ce que tu saisis le principe général de tout ça ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 14:32

je pense que oui... mais je ne suis pas sur d’être capable de franchir cette étape, je n'ai pas écris ce script de vote et il fonctionne seul en dehors de mes inscriptions chien et c'est uniquement quand la page est affiché qu'il crée les champs dans la table calcul pour recevoir les votes...

en suite ça marche avec ajax avec un système d’étoile, le visiteur clic et c'est fini le vote est enregistrer...
la tout fonctionne bien mais plus bas j'ai la descendance de ce chien et je voudrais affiché pour chaque parents les résultats de leurs votes respectifs: la moyenne et le nbr de votes

donc, pour le moment je dois essayer de modifier le script qui enregistre pour avoir des champs en plus, c'est bien ca ?
pour remplir comme ca ?
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mer 12 Octobre 2011 à 12:09
-- Version du serveur: 5.5.8
-- Version de PHP: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `malivote`
--

-- --------------------------------------------------------

--
-- Structure de la table `calcul`
--

CREATE TABLE IF NOT EXISTS `calcul` (
  `id` varchar(255) NOT NULL,
  `id_chien` varchar(50) NOT NULL,
  `id_question` varchar(255) NOT NULL,
  `total_votes` int(11) NOT NULL DEFAULT '0',
  `total_value` int(11) NOT NULL DEFAULT '0',
  `used_ips` longtext,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `calcul`
--

INSERT INTO `calcul` (`id`, `id_chien`, `id_question`, `total_votes`, `total_value`, `used_ips`) VALUES
('1-G', 'lof_1', 'G', 0, 0, ''),
('1-F', 'lof_1', 'F', 0, 0, ''),
('1-E', 'lof_1', 'E', 0, 0, ''),
('1-D', 'lof_1', 'D', 0, 0, ''),
('1-C', 'lof_1', 'C', 0, 0, ''),
('1-B', 'lof_1', 'B', 0, 0, ''),
('1-A', 'lof_1', 'A', 0, 0, '');
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

12 oct. 2011, 15:00

J'essayerai de trouver un peu de temps ce soir pour faire des tests, pour l'immédiat, je suis bloqué avec d'autres soucis encore plus complexes... à moins qu'un(e) autre sache prendre le relai pour te guider vers une solution viable et durable.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 22:23

bon, je n'e suis pas sur de l'utilité mais j'ai réussi a modifier mon script comme ca:
<?php echo rating_bar($donnees['id_chien'].'-A',$donnees['lof_chien'],'A','10'); ?>
donc désormais j'ai dans ma table calcul 2 nouveaux champs qui se remplisse bien comme je veux...
`id`, `id_chien`, `id_question`, `total_votes`, `total_value`, `used_ips`

maintenant chaques chien a 7 ligne dans la table calcul avec 7 fois le même id (id_chien) et 7 (id_questions) différente, je dois pouvoir faire le trie maintenant: non ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

12 oct. 2011, 22:33

Ben tu es mieux placée que pour pour répondre à ça :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

12 oct. 2011, 23:08

alors je ne sais pas trop si je suis sur la bonne route mais je ressort quelque chose, malheureusement: 1 seul linge, la dernière enregistrer
comment est ce que je peux faire maintenant pour spécifier la ligne et la réponse a tel ou tel question ?
si tu n'a pas trop de temps, c'est pas grave, de toute façon je cherche a droite a gauche mais tout ça est quand même encore un peut abstrait et c'est pas facile...
merci
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

12 oct. 2011, 23:15

Le résultat basique avec ce système, c'est que pour un votant, il ne pourra voter que pour une question par chien.
je réalise que peut être on s'est mal compris, le visiteur peut répondre a toutes les questions mais une seul fois, ça ça fonctionne bien pas de soucis...
les résultats s'enregistre et je veux juste récupérer les résultats pour les affiché sur tout les individu affiché sur la page en cours...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

13 oct. 2011, 07:09

Encore une fois, tu es mieux placée que moi : à partir de l'identification des différentes données et des règles de gestion, tu dois définir si tu stockes ces données dans une ou plusieurs tables et comment tu les répartis. La récupération se fera ultérieurement et je dirais que ce n'est pas encore la question.

Il me semble cependant que dans la table que tu as montré, il y a des valeurs calculées (total_votes et total_value) : par principe, on ne stocke jamais une valeur qui peut être calculée à partir de données d'autres colonnes. Au moment de récupérer les données, on peut parfaitement intégrer des calculs dans les requêtes, et si on enregistre que les données de base, on simplifie la maintenance et l'utilisation de la base.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

13 oct. 2011, 13:22

je pense comprendre ce que tu veux dire:
j'ai travaillé tard et j'ai réussi a récupérer les infos des 7 questions mais pour un chien et au moyen d'une boucle, ce n'est pas ce que je veux...
il me semble avoir compris qu'il me faut une table de ce genre:

id | id_chien | Q1 | R1 | Q2 | R3 | Q4 | R4 | Q5 | R5 | Q6 | R6 | Q7 | R7 |

est ce que c'est ça ?

dans ce cas, si oui, c'est bien mon script d'enregistrement qui doit être modifié ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.