Separer des info dans une entrée mysql

xsd
Petit nouveau ! | 2 Messages

27 août 2008, 02:30

Bonjour

je suis actuellement en train de coder avec php un petit script qui doit generer une filmographie mais je bloque :

j'ai une table acteur ou il y a le nom de l'acteur et toutes les autres infos et j'aimerais de cette facon :

$filmographiep=mysql_query("SELECT * FROM serie WHERE acteur= $fiche_acteur['nom'] ORDER BY ID DESC LIMIT 0, 5");
while($filmographie=mysql_fetch_array($filmographiep))
{
echo $filmographie['nom'];
}
recuperer dans la table serie le nom des serie ou le nom de l'acteur est present dans la colonne acteur mais le probleme c'est qu'il faudrais pouvoir mettre plusieur nom d'acteur dans cette case et si je les met a la suite la condition WHERE acteur= $fiche_acteur['nom'] n'est plus rempli . je ne sais pas trop comment m'y prendre :( j'espere que vous allez pouvoir m'aider , je vous remercie d'avance , bonne nuit

Mammouth du PHP | 1353 Messages

27 août 2008, 12:18

Comment est constitué ta colonne acteur dans serie ? Elle contient plusieurs noms d'acteurs ? Séparés par un caractère ?

Si c'est cela tu peux utiliser l'opérateur LIKE dans une recherche :

Exemple : ta colonne acteur contient "Brad Pitt, Matt Damon, George Clooney"

Tu veux chercher les series dans lesquelles joue Matt Damon :

Code : Tout sélectionner

"SELECT nom FROM serie WHERE acteur LIKE '%Matt Damon%'";
A noter cependant que ca n est pas la meilleur facon de faire. A mon sens il faudrait par exemple une table série ou chaque série à une id unique et des infos, une table acteur ou chaque acteur a une id unique et des infos, et enfin un table de liaison ou tu mets ensemble id_acteur et id_serie pour chaque acteur qui joue dans une série.

Ainsi, pour avoir tous les acteurs qui jouent dans une série tu sélectionnes dans ta table de liaison tous les id_acteur WHERE id_serie = série_que_tu_cherches, et pour avoir toutes les séries dans lesquelles joue cet acteur tu fais l'inverse...
Niveau méthologie ca me parait le mieux, sauf si quelqu'un de plus expérimenté vient me contredire sur ce topic ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 août 2008, 13:23

La 2ème proposition est de loin la meilleure :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

xsd
Petit nouveau ! | 2 Messages

27 août 2008, 14:33

oki c'est bon pour la 2eme proposition car la table serie a un champ id et la table acteur aussi donc je crée un table pour mettre en relation les 2 merci beaucoup de votre aide , j'avais commencé la premiere en separant les nom avec des * mais la deuxieme me parait bien mieux et il sera plus simple pour moi , d'enlever un acteur d'une serie en cas d'erreur juste une entrée a virer c'est un tres bonne solution merci encore. je vais enfin pouvoir continuer sans ce probleme qui plane sur le site ;)