[RESOLU]il n’affiche rien

Eléphanteau du PHP | 17 Messages

04 janv. 2012, 03:40

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());
}
}
?>

Modifié en dernier par Nathan-971 le 05 janv. 2012, 23:11, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

04 janv. 2012, 07:48

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...

Eléphanteau du PHP | 17 Messages

04 janv. 2012, 16:52

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());
}
?>

ViPHP
ViPHP | 2577 Messages

04 janv. 2012, 17:00

Je n'ai pas trouvé de champs avec name=''id" dans ton formulaire.

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

Eléphanteau du PHP | 17 Messages

04 janv. 2012, 17:46

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é ?
Modifié en dernier par Nathan-971 le 04 janv. 2012, 18:09, modifié 1 fois.

Eléphanteau du PHP | 17 Messages

04 janv. 2012, 18:20

Quelqu’un a une idée ?

Eléphant du PHP | 209 Messages

04 janv. 2012, 18:48

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.

Eléphanteau du PHP | 17 Messages

04 janv. 2012, 19:54

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

Eléphant du PHP | 209 Messages

05 janv. 2012, 10:42

C'est quoi ta ligne 35 de ton fichier ma_page.php

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

05 janv. 2012, 15:53

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...
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 17 Messages

05 janv. 2012, 23:11

merci ça fonctionne :)