8797 sujets

Développement web côté serveur, CMS

bonjour,

Je me permets de vous demander un peu d'aide, car je bloque.

Mon code affiche directement tout ce qu’il se trouve dans la BDD de données, je n’arrive pas sélectionner le livre que je souhaite voir avec le formulaire.

Pouvez-vous me dire comment faire en sorte pour que je sélectionne uniquement 1 livre à la fois par l’intermédiaire formulaire.

J’ai aussi mi la structure des 2 BDD.

Merci


<form action="ma_page.php" method="post">
<p>
    <select name="id">
    <option value="010">Choix 1</option>
    <option value="02O">Choix 2</option>
    <option value="03O">Choix 3</option>
    <option value="04O">Choix 4</option>
</select>
    <input type="submit" value="Valider" />
</p>
</form>


<?php
if (isset($_POST['id'])) 
{
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=pole-chretien', 'root', '', $pdo_options);

$reponse = $bdd->query('SELECT livre, ch, vst, LSG, is_promesse, l.livre AS nom_livre, "v.versets" AS voir_versets
                        FROM ref_bible AS l
						INNER JOIN versets AS v
						ON l.id = v.id
						WHERE v.is_promesse=\'1\'
						ORDER BY is_promesse' );

while ($donnees = $reponse->fetch())
{
echo $donnees['livre'] .''.$donnees['ch'] .' : '. $donnees['vst'] . '<br/>' . $donnees['LSG'] . ' <br/><br/>';
}

$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
}
?>


CREATE TABLE IF NOT EXISTS `versets` (
  `id` char(3) NOT NULL DEFAULT '',
  `ch` mediumint(3) NOT NULL DEFAULT '0',
  `vst` mediumint(3) NOT NULL DEFAULT '0',
  `LSG` text NOT NULL,
  `darby` text NOT NULL,
  `ostervald` text NOT NULL,
  `martin` text NOT NULL,
  `is_promesse` int(1) UNSIGNED NOT NULL DEFAULT '0',
  KEY `id` (`id`,`ch`,`vst`),
  KEY `vst` (`vst`),
  KEY `ch` (`ch`),
  KEY `is_promesse` (`is_promesse`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `ref_bible` (
  `id` char(3) NOT NULL DEFAULT '',
  `livre` char(60) NOT NULL DEFAULT '',
  `chap` int(3) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Je suppose que $_POST['id'] est l'id du livre que tu voudrais afficher et seulement celui là. Si tel est le cas pourquoi alors n'apparait-il pas dans le conditions de ta requête ?

AND l.id ='.$idLivre.'

PS : T'as jointure est étrange ... Keep the faith Smiley cligne
Modifié par Su4p (06 Jan 2012 - 18:02)