Cherche de l'aide pour fomrulaire php

Résolu/Fermé
Utilisateur anonyme - Modifié par valbo85 le 1/05/2010 à 18:52
 isnan - 3 mai 2010 à 00:03
bonjour j'ai fait un formulaire php pour mettre des donnes dans ma basse de donnée. mon site c'est la liste des films , serie tv, mangas, dessin anime avec une fiche pour chaque film et j'ai donc fait dans ma bdd du nom de "vmarchive" une table pour chaque type ("film", "serietv", "mangas", "dessin anime") mais se que j'aimerai faire c'est que quand je remplit mon formulaire que je puisse en choisissant dans le formulaire une option qui va après enregistre dans ma BDD le film dans sa bonne table

pour l'instant mon code il enregistre que dans la table "film"

voici mon formulaire

rajouter_film.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>rajouter film s</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
form
{
text-align:center;
}
</style>
<body>

<form action="suite_post.php" method="post">
<p>
<label for="nom_du_film">Titre</label> : <input type="text" name="nom_du_film" id="nom_du_film" /><br />
<label for="date_de_sortie">Date de sortie</label> : <input type="text" name="date_de_sortie" id="date_de_sortie" /><br />
<label for="realisateur">Realisateur</label> : <input type="text" name="realisateur" id="realisateur" /><br />
<label for="acteur">Acteur</label> : <input type="text" name="acteur" id="acteur" /><br />
<label for="origine_du_film">Origine du film</label> : <input type="text" name="origine_du_film" id="origine_du_film" /><br />
<label for="genre">Genre</label> : <input type="text" name="genre" id="genre" /><br />
<label for="durée">Durée</label> : <input type="text" name="durée" id="durée" /><br />
<label for="resume">Resumer</label> : <input type="text" name="resume" id="resume" /><br />
<label for="lien_allocine">Lien allocine</label> : <input type="text" name="lien_allocine" id="lien_allocine" /><br />


<input type="submit" value="Envoyer" />
</p>
</form>


<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=vmarchive', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

?>


suite_post.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=vmarchive', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

$req = $bdd->prepare('INSERT INTO film(nom_du_film, date_de_sortie, realisateur, acteur, origine_du_film, genre,
durée, resume, lien_allocine) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

$req->execute(array($_POST['nom_du_film'], $_POST['date_de_sortie'], $_POST['realisateur'],
$_POST['acteur'], $_POST['origine_du_film'], $_POST['genre'], $_POST['durée'],
$_POST['resume'], $_POST['lien_allocine']));

header('Location: rajouter_film.php');
?>
A voir également:

4 réponses

Utilisateur anonyme
1 mai 2010 à 20:03
aidez moi s'il vous plais
0
Euh comment t'aider? Il manque effectivement une partie de ton code, à moins qu'elle soit ailleurs dans la page ou dans un include tu utilises les function execute() et la méthode prepare(arg,...) de l'onjet PDO. Donc sans voir l'objet et les fonctions... que dire...
Une solution serait de ne pas utiliser ces fonctions et de repartir sur de bonnes bases l'insertion(quitte à les recréer aprés pour plus de clarté du code+réulitisabilité).

Euh [quote]?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); [/quote] ça risque pas de marcher ça, pouyr n'importe quelle machine il suffit de regarder la notice technique pour savoir ou est le problème, en programmation c'est encore plus vrai:

http://dev.mysql.com/doc/refman/5.0/fr/insert.html

//--
[quote]
c'est la liste des films , serie tv, mangas, dessin anime avec une fiche pour chaque film et j'ai donc fait dans ma bdd du nom de "vmarchive" une table pour chaque type ("film", "serietv", "mangas", "dessin anime")
[/quote]

Pourquoi plusieurs tables dans ce cas là?
Imagine la quantité de travail à fournir si tu rajoutes une catégorie que tu n'as pas prévue(avec ton système il faut créer une nouvelle table :/).
C'est plus simple, plus propre et mieux de faire une seule table en indiquant un champ 'type' correpsondant au média: film, DA,japanimation*.

*erreur trop fréquente dire manga pour de l'animation japonaise(japanim), c'est comme dire qu'une bande dessinée est un dessin animé. Rien à voir.
Bizarre tes critéres de classement: comment classer un film (sortie ciné) qui est un dessin animé classique? qu'en est t'il d'un film en image de synthèse? Un dessin animé tv se ranges t'il en série tv ou dessin animé?Un téléfilm est t'il un film ou une série tv..etc Je ferait des catégories plus précises afin d'avoir un classement qui puisse correspondre à quelque chose.
Pense à un champ type de média plutôt que plusieurs tables, ça permet entre autre de:
1)Faire des tests en n'ayant que des catégories 'larges' quitte à les préciser plus tard.
2) Ajouter facilement une sous-catégorie, exemple film->sortie ciné; film->sortie uniquement en dvd; film->d'animation1(dessin animé sortie ciné ); film->d'animation2(en image de synthése); film->d'animation3(avec de la pâte à modeler); etc...
3) Plusieurs tables servent à rien les différents types de films, série tv, da, japanim...etc ont plus en commun qu'ils ont des différences(une durée, date de sortie, réalisateur, etc...). Par contre c'est quand ils n'ont pas en commun certaines informations qu'il faut faire une table différente.exemple: un dessin animé à des doubleurs, un film des acteurs. Pour retenir les deux il faut au moins une table différente(voire deux) indiquant le nom de ces acteurs et doubleurs
Cas1 table
[acteur]
prenom:Sean
nom:Connery
film:highlander
//une autre ligne

prenom:Sean
nom:Connery
film:James bond contre le Dr No

//une autre ligne

prenom:mike
nom:myers
film: shriek

Avec deux tables c'est encore mieux(une table pour les acteurs une pour les doubleurs, on peut retenir dans la table doubleur une colonne en plus pour le doubleur français d'un film d'animation et le doubleur original pour un film étranger).
0
Utilisateur anonyme
2 mai 2010 à 01:27
okok déja merci de te part de m'avoir repondu.

si je fait comme tu dit une table pour tout sa marchera si il y a des champs qui ne sont pas remplit car dans mangas et serie tv j'aurais des champs en moins
0
non pas besoin de table serie tv , manga etc..c'est indiqué par le champ
tu rajoute un champ indiquant le type de l'oeuvre vidéo:

pour un film y aura un truc du style dans la table :

nom:Batman Darknight
type: Film
duree:190
sortie:2009

et pour un dessin animé:

nom: Mon voisin Totoro
type:animation
duree:190


je voit pas l'intérêt d'avoir une table différentes pour chaque 'genre' audiovisuel dans ton cas? avoir plus de boulot pour un plus mauvais résultat?

Pou r indiquer à un champ qu'il peut ne pas être rempli il faut indiquer qu'il peut être NULL dans phpmyAdmin ou directement en SQL si tu crées ta table à partir d'un fichier SQL.
0