colonne inconnu

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : colonne inconnu

par Ryle » 23 févr. 2008, 14:54

Ce n'est pas un problème de 1 ou de L, mais plus je dirais d'ordre des tables. Les instructions sur les jointures (si je ne dis pas de bétises) se font entre les tables concernées.

Donc au lieu de :
FROM phpl_matchs, phpl_journees, equipes, equipes as EXT 
             LEFT JOIN phpl_ordres 
             ON phpl_ordres.id_match = phpl_matchs.id 
Ou la jointure se fait sur la table equipes et non phpl_matchs...

Il faudrait
FROM phpl_matchs LEFT JOIN phpl_ordres ON (phpl_ordres.id_match = phpl_matchs.id)
             , phpl_journees
             , equipes
             , equipes as EXT  
A tester...

par Snipy » 23 févr. 2008, 12:48

Erreur dans mon copie-coller, mais c'est bien le problème quand même Razz
Dans ton create table c'est un 1 et dans ton query c'est un un l (comme Lima Very Happy)
Pourtant pour ma part c'est un L dans les 2 cas oOO



pour compter les matchs d'un joueur, il y aura une table stats avec une entré pour chaque joueur pour chaque match joué

par iclo » 23 févr. 2008, 00:17

Erreur dans mon copie-coller, mais c'est bien le problème quand même :P
Dans ton create table c'est un 1 et dans ton query c'est un un l (comme Lima :D)

Pour ta structure de table, c'est bien-sûr toi qui voit, mais partir sur une mauvaise structure de base de donnée, c'est courir le risque de se retrouver complètement bloquer plus tard, quand on veut commencer à exploiter les données qu'on y a enregistré (par exemple quand on veut commencer à compter le nombre de match d'un joueur, etc)

On voit malheureusement souvent des membres venir demander comment se sortir de ce genre de situation, et souvent la seule chose à faire c'est de tout recommencer à zéro... :-(

par Snipy » 22 févr. 2008, 23:00

Je ne vois pas la différence lol

Concernant la normalisation, ce n'est pas faux mais actuellement pour moi c'est le plus pratique :? :o

par iclo » 22 févr. 2008, 21:53

phpl_matchs et php1_matchs ce n'est pas la même chose :wink:

Ta base de donnée, me semble avoir une structure pas du tout normalisée :? Cela risque de te poser des problèmes par la suite...

colonne inconnu

par Snipy » 22 févr. 2008, 20:22

Bonjour à tous,

Me voila avec un problème que je ne sais expliqué.

Voici mon erreur
Unknown column 'phpl_matchs.id' in 'on clause'
La colonne étant existante l'erreur viendrait de la structure de ma requete?

l'erruer doit etre à la ligne 4
$requete="   SELECT equipes.nom AS equipe_dom, EXT.nom AS equipe_ext, phpl_matchs.buts_dom AS buts_dom , phpl_matchs.buts_ext AS buts_ext, phpl_matchs.id AS id_match, phpl_matchs.date_reelle, phpl_journees. date_prevue AS date_prevue
             FROM  phpl_matchs, phpl_journees, equipes, equipes as EXT
			 LEFT JOIN phpl_ordres
			 ON phpl_ordres.id_match = phpl_matchs.id
			 WHERE equipes.id_equipe = phpl_matchs.id_equipe_dom 
             AND EXT.id_equipe=phpl_matchs.id_equipe_ext 
             AND($id_equipe = phpl_matchs.id_equipe_dom OR $id_equipe = phpl_matchs.id_equipe_ext) 
             AND phpl_matchs.id_journee=phpl_journees.id
             AND phpl_journees.id_champ='$id_champ'			
             ORDER BY phpl_journees.numero";

Code : Tout sélectionner

-- -- Structure de la table `phpl_ordres` -- CREATE TABLE `phpl_ordres` ( `id` int(11) NOT NULL, `id_match` int(11) NOT NULL, `dom_joueur1` tinyint(4) NOT NULL, `dom_joueur2` tinyint(4) NOT NULL, `dom_joueur3` tinyint(4) NOT NULL, `dom_joueur4` tinyint(4) NOT NULL, `dom_joueur5` tinyint(4) NOT NULL, `dom_remp1` tinyint(4) NOT NULL, `dom_remp2` tinyint(4) NOT NULL, `dom_remp3` tinyint(4) NOT NULL, `dom_remp4` tinyint(4) NOT NULL, `dom_remp5` tinyint(4) NOT NULL, `ext_joueur1` tinyint(4) NOT NULL, `ext_joueur2` tinyint(4) NOT NULL, `ext_joueur3` tinyint(4) NOT NULL, `ext_joueur4` tinyint(4) NOT NULL, `ext_joueur5` tinyint(4) NOT NULL, `ext_remp1` tinyint(4) NOT NULL, `ext_remp2` tinyint(4) NOT NULL, `ext_remp3` tinyint(4) NOT NULL, `ext_remp4` tinyint(4) NOT NULL, `ext_remp5` tinyint(4) NOT NULL, `dom_tactique` tinyint(4) NOT NULL, `ext_tactique` tinyint(4) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci; -- -- Structure de la table `phpl_matchs` -- CREATE TABLE `phpl_matchs` ( `id` mediumint(6) unsigned NOT NULL auto_increment, `id_equipe_dom` smallint(5) unsigned default NULL, `id_equipe_ext` smallint(5) unsigned default NULL, `date_reelle` datetime default NULL, `id_journee` smallint(5) unsigned default NULL, `buts_dom` smallint(4) unsigned default NULL, `buts_ext` smallint(4) unsigned default NULL, PRIMARY KEY (`id`), KEY `id_equipe_dom` (`id_equipe_dom`), KEY `id_equipe_ext` (`id_equipe_ext`), KEY `buts_dom` (`buts_dom`), KEY `buts_ext` (`buts_ext`), KEY `id_journee` (`id_journee`) ) ENGINE=MyISAM AUTO_INCREMENT=77 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=77 ;
Merci beaucoup !!

Bonne soirée