Créer une colonne automatiquement...php necessaire?

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 : Créer une colonne automatiquement...php necessaire?

génial, super, top, merci !

par dd59 » 15 janv. 2009, 01:21

cooool,

furiouslol, respect.... :merci:

à part la mise au point compte tenu des abréviations (l.numero par ex), comme je commence à comprendre les termes sql, j'ai pu corriger....

mais ca fonctionne !!!

je connaissais pas le coup des alias !!! :wink: :wink:

très zutil !

merci encore !!
++

par furiouslol » 14 janv. 2009, 08:55

Salut

J'ai pas mal répondu a ce genre de probleme récement :

Ta table principale est LISTE, dans laquelle tu as deux identifiants NOM par ligne, tu peux faire une double liaison sur la table acteur, en utilisant les alias

Code : Tout sélectionner

SELECT l.numero , l.titre , f.genre , a1.nom as nom1 , a2.nom as nom1 FROM liste l JOIN filmsgenre f ON l.identgenre=f.identgenre AND f.identgenre='2' LEFT JOIN acteurs a1 ON liste.identnom=a1.identnom ORDER BY a1.numero LEFT JOIN acteurs a2 ON liste.identnom=a2.identnom ORDER BY l.numero
A propos des alias de table, essaye de les utiliser systématiquement, ca facilite la leccture pour nous et ca t'évitera d'éventuels problemes d'ambiguité

Créer une colonne automatiquement...php necessaire?

par dd59 » 14 janv. 2009, 01:08

lu !!

je galère toujours autant avec ma base et je sollicite à nouveau vos précieux conseils...

Voila tout d'abord, présentation de mes tables...


Ma table "liste"

Code : Tout sélectionner

CREATE TABLE `liste` ( `Numero` int(4) NOT NULL, `titre` varchar(255) NOT NULL, `identGenre` char(20) NOT NULL, `identNom` int(4) NOT NULL, `identNom2` int(4) NOT NULL, PRIMARY KEY (`Numero`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ma table "filmsgenre"

Code : Tout sélectionner

CREATE TABLE `filmsgenre` ( `identGenre` varchar(20) NOT NULL, `Genre` varchar(255) NOT NULL, PRIMARY KEY (`identGenre`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ma table "acteurs"

Code : Tout sélectionner

CREATE TABLE `acteurs` ( `identNom` varchar(500) character set ascii collate ascii_bin NOT NULL, `nom` char(25) NOT NULL, PRIMARY KEY (`identNom`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `acteurs` -- INSERT INTO `acteurs` (`identNom`, `nom`) VALUES (0x3336, 'Michele Laroque'), (0x3335, 'Pierre Palmade'), (0x3334, 'Thierry Lermitte'), (0x3333, 'Gad elmalech'), (0x3332, 'Will smith'), (0x3331, 'Samuel lee jackson'), (0x3330, 'Yvan lebolloch'), (0x3239, 'Franck Dubosc'), (0x3238, 'Michel Bougena'), (0x3237, 'Jean Reno'), (0x3236, 'Gerard Lanvin'), (0x3235, 'Elie Semoun'), (0x3234, 'Lafesse'),....etc....

J'ai réussi (grâce à furiouslol) a générer une requête qui me fait une liste de films filtrée par genre, avec l'acteur correspondant au film...en intégrant les champs vide grace au left join...:

Code : Tout sélectionner

SELECT numero,titre,genre,nom FROM liste JOIN filmsgenre ON liste.identgenre=filmsgenre.identgenre AND filmsgenre.identgenre='2' LEFT JOIN acteurs ON liste.identnom=acteurs.identnom ORDER BY numero

MON PTIT PROBLÈME :


Je possède des films avec 2 acteurs enregistrés dans "liste" par leur numéro (1,2,3...) dans les colonnes identNom et identNom2.

La requête précédente présente la colonne "nom" et le nom de l'acteur correspondant (pour identNom)

Comment puis-je obtenir une colonne "nom" supplémentaire pour lequel le champ est renseigné..? (identNom2) (le deuxième acteur du film...).

merci d'avance !!!!

++