8791 sujets

Développement web côté serveur, CMS

Bonjours, Le titre n'est pas tout a fait exacte, je vais expliquer ce que je veut faire et bien sur(malheureusement) je n'arrive pas a y faire:

Je suis fan de cinéma(je collectionne les ticket^^), j'ai décider de crée une base de donnée pour m'entrainer, pour mettre toute les info sur un film, ses photos..., avec meme une partit sur les acteurs... C'est magnifique^^.

Ce que j'aimerais c'est afficher la liste des titre des film de ma base de donnée. Ca j'y arrive en 3 colonnes^^.

Mais au lieux d'afficher tout sur la meme page, ca en feraient trop.
J'aimerais le faire avec deux pages(une avec la liste et l'autre les info des film...) pour que quand je clique dessus ca ouvre une nouvelle page, toujours la meme, mais que les info a l'intérieur soit modifier pour afficher les info de la table demander.
J'ai voulu faire un truck comme ca:
filmsacteur.php?n=20
et que dans la nouvelle page ca affiche la ligne 20 de ma base de donnée.
Mais je sais pas comment faire après.
Voicis, mon code qui m'affiche tout:


<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=film', 'root', '');
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM `listefilm` LIMIT 0 , 101') or die(print_r($bdd->errorInfo()));

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<br><A NAME ="<?php echo $donnees['id']; ?>"></a>
<br>
<div id="infotitre">
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td align="undefined" valign="undefined">
<div style="text-align: left;"><a href="#haut"><img src="Haut.png"  width="" height="" border="0">Retour</a></div>
     </td>
     <td align="undefined" valign="undefined">
<div style="text-align: center;"><a href="#bas"><img src="Bas.png" border="0">Bas<img src="Bas.png" border="0"></a></div>
     </td>
      <td align="undefined" valign="undefined">
<div style="text-align: right;"><a href="#haut">Retour<img src="Haut.png"  width="" height="" border="0"></a></div>
      </td>
    </tr>
  </tbody>
</table>
<p>
<div id="jaquette">
<a href="Pageaffiche/<?php echo $donnees['jaquette']; ?>.jpg" target="_blank"><img src="Pageaffiche/<?php echo $donnees['jaquette']; ?>.jpg" title="<?php echo $donnees['titre']; ?>" alt="Affiche du film: <?php echo $donnees['titre']; ?>" width="" height="167" border="0"><a>
</div>
<span id="lestitresS">&bull;</span> <span id="lestitres"><?php echo $donnees['titre']; ?></span> <a href="#<?php echo $donnees['id']; ?>"><span style="font-size:10px;">N°<?php echo $donnees['id']; ?>.</span></a><A NAME ="<?php echo $donnees['id']; ?>"></a><br>
<br>
<?php echo $donnees['info_film']; ?>
</div>
<div id="contenu"><hr style="width: 100%; height: 2px;">
<span id="lestitresnonsouligner">Synopsis:</span>
<div style="text-align: justify;" id="resumer"><?php echo $donnees['Synopsis']; ?>
</div>
</p>
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td align="undefined" valign="undefined">
<div style="text-align: left;"><a href="#haut"><img src="Haut.png"  width="" height="" border="0">Retour</a></div>
     </td>
     <td align="undefined" valign="undefined">
<div style="text-align: center;"><a href="#bas"><img src="Bas.png" border="0">Bas<img src="http://localhost/CSSpagehtml/Touchesps3/BoutonsPs3/BoutonPs3Bas.png" border="0"></a></div>
     </td>
      <td align="undefined" valign="undefined">
<div style="text-align: right;"><a href="#haut">Retour<img src="Haut.png"  width="" height="" border="0"></a></div>
      </td>
    </tr>
  </tbody>
</table>    
    </div>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>
Salut,

Je suis pas certain d'avoir tout compris, mais si tu veux :
- une page qui liste les films
- quand on clique sur un film on a les détails du film qui apparaissent
Je crois que l'idéal est d'avoir deux pages pour ça :
// PAGE liste-films.php
$reponse = $bdd->query('SELECT id, titre FROM listefilm');
foreach ($response as $film) {
    echo '<a href="film.php?id=' . $film['id'] . '" title="">' . $film['titre'] . '</a>';
}

// PAGE film.php
if (is_numeric($_GET['id'])) {
    $reponse = $bdd->query('SELECT titre, realisateur, annee, synopsis FROM listefilm WHERE id = ')->fetch();
    // Affichage 
}
Ce ne marche pas, le code que j'ai donnée marche et affiche les info sur les films...
Pour la liste des titre des film, il est juste un peut différent avec une ancre qui amène a chaque film.
Ce qui affiche la liste des films:


<?php
try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=film', 'root', '') or die("Impossible de se connecter à la base de données." . mysql_error());
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM `listefilm` LIMIT 0 , 150') or die(print_r($bdd->errorInfo()));

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<span id="lestitresS">&bull;</span> <a href="#<?php echo $donnees['id']; ?>"  title="<?php echo $donnees['titre']; ?>"><?php echo $donnees['titre']; ?></a> <span style="font-size:9px;">N°<?php echo $donnees['id']; ?>.</span><br>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>


et ca c'est la mise en page des information que contienes mes tables:


<?php
try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=film', 'root', '');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM `listefilm` LIMIT 0 , 101') or die(print_r($bdd->errorInfo()));

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<br><A NAME ="<?php echo $donnees['id']; ?>"></a>
<br>
<div id="infotitre">
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td align="undefined" valign="undefined">
<div style="text-align: left;"><a href="#haut"><img src="Haut.png"  width="" height="" border="0">Retour</a></div>
     </td>
	 <td align="undefined" valign="undefined">
<div style="text-align: center;"><a href="#bas"><img src="Bas.png" border="0">Bas<img src="Bas.png" border="0"></a></div>
	 </td>
      <td align="undefined" valign="undefined">
<div style="text-align: right;"><a href="#haut">Retour<img src="Haut.png"  width="" height="" border="0"></a></div>
	  </td>
    </tr>
  </tbody>
</table>
<p>
<div id="jaquette">
<a href="Pageaffiche/<?php echo $donnees['jaquette']; ?>.jpg" target="_blank"><img src="Pageaffiche/<?php echo $donnees['jaquette']; ?>.jpg" title="<?php echo $donnees['titre']; ?>" alt="Affiche du film: <?php echo $donnees['titre']; ?>" width="" height="167" border="0"><a>
</div>
<span id="lestitresS">&bull;</span> <span id="lestitres"><?php echo $donnees['titre']; ?></span> <a href="#<?php echo $donnees['id']; ?>"><span style="font-size:10px;">N°<?php echo $donnees['id']; ?>.</span></a><A NAME ="<?php echo $donnees['id']; ?>"></a><br>
<br>
<?php echo $donnees['info_film']; ?>
</div>
<div id="contenu"><hr style="width: 100%; height: 2px;"> 
<span id="lestitresnonsouligner">Synopsis:</span>
<div style="text-align: justify;" id="resumer"><?php echo $donnees['Synopsis']; ?>
</div>
</p>
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td align="undefined" valign="undefined">
<div style="text-align: left;"><a href="#haut"><img src="Haut.png"  width="" height="" border="0">Retour</a></div>
     </td>
	 <td align="undefined" valign="undefined">
<div style="text-align: center;"><a href="#bas"><img src="Bas.png" border="0">Bas<img src="Bas.png" border="0"></a></div>
	 </td>
      <td align="undefined" valign="undefined">
<div style="text-align: right;"><a href="#haut">Retour<img src="Haut.png"  width="" height="" border="0"></a></div>
	  </td>
    </tr>
  </tbody>
</table>	 
	</div>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>  

Qu'est ce qu'il faut modifier pour que quand je clique sur un film de la liste, il s'ouvre dans l'autre page avec toute les info.
Au moins ca ferait deux page:
- une contenant la liste des film.
- l'autre affichant ce que contient la base de donnée sur le film.

En faite Si j'ai bien compris je demande a afficher 1 seule film sur la page(c'est le but^^) mais rien ne s'affiche et quand je clique sur un des film ça modifie la requête SQL pour afficher les info du film demander ??? Mais comment faire
J'ai oublié l'ID du film dans la requête SQL, essaye avec ce code corrigé :
// PAGE film.php 
if (is_numeric($_GET['id'])) { 
    $reponse = $bdd->query('SELECT titre, realisateur, annee, synopsis FROM listefilm WHERE id = ' . $_GET['id']);
    if ($response) {
        $film = $response->fetch();
        var_dump($film);
    } else {
        echo "Échec de la requête : " . print_r($bdd->errorInfo(), true);
    }
} 
Si ça ne marche pas, dis ce qui se passe (exactement).
Modifié par marcv (23 Jul 2010 - 18:26)
Ca me mais plusieurs erreur, je comprend pas comment faire, pourtant ça a l'aire simple^^.
Sur la première avec avec la liste, j'ai mis un truck comme ça: ?id=265 qui change tout seule suivant les film.
mais a chaque fois que je clique sur le film ca me met plein d'erreur ou je dois afficher le titre, la jaquette...
Est ce qu'on peut se baser sur le code que j'ai donnée plus haut j'avais tout mis.
P*degtrgg*fdg*fg(bug) Ce que je pense dans mon cerveaux, pourquoi faire du compliquer quand on peut faire simple, je me disais que c'était la recette SQL a modifier, mais je m'y connais pas trop pour savoir tout faire, mais la on modifiais plein de truck et ca ne marchait pas, j'ai juste mis ca: 'SELECT * FROM `listefilm` WHERE id =' . $_GET['id']) or die(print_r($bdd->errorInfo()));
comme tu me la donnée, mais sans les autre truck et ca marche.

DSl au autre qui m'on aider et qui m'auraient dit de faire ça, je comprenais pas comment faire^^.
DSL pour double poste.

Edit: J'ai fait une include et ca y affiche directe en haut de la page avec un lien "retour"(?id=0 pour y cacher autrement bug???) car l'encre ne marche pas, dommage.

Merci pour votre aide
Modifié par loixi (24 Jul 2010 - 12:40)
J'ai uen autre question est qu'il est possible de center une frame sur une certaine partit de la page ? car je vois des site qui le font et meme avec des images comme Google
Ouvre un autre topic sur la section approrié, vu que ta dernière question concerne tout autre chose.
Bon j'ai une autre question, comment on fait pour afficher un message d'erreur, car la ca affiche les info de la ?id=49 (je sais pas trop expliquer), mais si par exemple il y a pas de N°50 ca affiche rien.
J'aimerais dans ce cas pouvoir afficher un message qui dit pourqoi ça n'affiche rien.