Page 1 sur 1

[RESOLU]il n’affiche rien

Posté : 04 janv. 2012, 03:40
par Nathan-971
Salut,
J’ai fait un code, je n’ai aucun message d’erreur, mais quand je valide, il n’affiche rien.
Je vous remercie d’avance pour votre aide.
  <form action="ma_page.php" method="post" name="value" id="page">
          <select name="value" id="value"> <option selected="selected" value="05">Tous les livres</option>
                                                       
                                                       <option  value="01O">Texte 1</option>
                                                        <option value="02O">Texte 2</option>
                                                        <option value="03O">Texte 3</option>
                                                        <option value="04O">Texte 4</option>
                                                        <option value="05O">Texte 5</option>


                        </select>
				<input name="Submit"   value=">>" type="submit" />
            
			
			        </form>
					
<?php

if (isset($_POST['id'])) 
{
$id = $_POST['id'];
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=mbase', 'root', '', $pdo_options);
    
    $req = $bdd->prepare('SELECT id, 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\' 
						AND id <= ?
						ORDER BY is_promesse' );
						
    $req->execute(array($_POST['id']));
    
    
    while ($donnees = $req->fetch())
    {
        echo $donnees['livre'] .' '.$donnees['ch'] .' : '. $donnees['vst'] . '<br/>' . $donnees['LSG'] . ' <br/><br/>';
    }
   
    
    $req->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
}
?>


Re: il n’affiche rien

Posté : 04 janv. 2012, 07:48
par xTG
Tu mélanges dans tes values des chiffres avec des lettres 0 != O
De plus tu préfixes par un zéro ? Ton champ serait-il un varchar ?
Auquel cas l'opérateur < ne va pas fonctionner correctement...

Re: il n’affiche rien

Posté : 04 janv. 2012, 16:52
par Nathan-971
J’ai refait le formulaire, bien que je ne sache pas trop s’il faut mettre le numéro de l’id ou le nom du livre. Est-il possible de me montrer comment en sélectionnant un livre on arrive à l’affiché avec la requête.
merci
Je galère à trouver la solution
<form action="ma_page.php" method="post">
<p>
    <select name="livre">
    <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
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=m_base', '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());
}
?>

Re: il n’affiche rien

Posté : 04 janv. 2012, 17:00
par Mazarini
Je n'ai pas trouvé de champs avec name=''id" dans ton formulaire.

Tu ne peux donc pas passer dans if (isset($_POST['id']))

Re: il n’affiche rien

Posté : 04 janv. 2012, 17:46
par Nathan-971
J’ai rajouté au formulaire
<select name="id">
    <option value="010">Choix 1</option>
<?php
if (isset($_POST['id'])) 
{
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=mbase', '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());
}
}
?>
Le script commence a fonctionné, mais il affiche directement tout ce qui ce trouve dans la BDD de donné sans s’occuper du formulaire.
Comment faire pour qu’il puisse tenir compte de ce dernier, et affiche un livre en fonction de ce que j’aurai sélectionné ?

Re: il n’affiche rien

Posté : 04 janv. 2012, 18:20
par Nathan-971
Quelqu’un a une idée ?

Re: il n’affiche rien

Posté : 04 janv. 2012, 18:48
par Shenryu
Si ton formulaire est envoyé, il faut que tu ajoutes la clause where sur l'id que tu reçois en POST.

Je ne sais pas sur quel champ il doit s'ajouter mais ta requête doit devenir :
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\'
AND MON_CHAMP_ID = $_POST['id']
ORDER BY is_promesse
N'oublie pas de protéger ton champ récupéré dans ta requête.

Re: il n’affiche rien

Posté : 04 janv. 2012, 19:54
par Nathan-971
Quelque que soit le champ que je mets j’ai un message d’erreur.

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\bible\ma_page.php on line 35
Je mets la structure des BDD si cela peut aider ce qu’on m’aide.
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;

S'il vous plait, aidez-moi sur ce script, j’ai vraiment besoin de ce script

Re: il n’affiche rien

Posté : 05 janv. 2012, 10:42
par Shenryu
C'est quoi ta ligne 35 de ton fichier ma_page.php

Re: il n’affiche rien

Posté : 05 janv. 2012, 15:53
par mere-teresa
Quelque que soit le champ que je mets j’ai un message d’erreur.

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\bible\ma_page.php on line 35
Erreur ligne 35 du fichier C:\wamp\www\bible\ma_page.php
Regarde aussi ligne 34 et 36 si tu n'as pas oublié un ; par hasard...

Re: il n’affiche rien

Posté : 05 janv. 2012, 23:11
par Nathan-971
merci ça fonctionne :)