Page 1 sur 1

récupérer une requête en fonction de la variable

Posté : 01 sept. 2011, 21:16
par bob971
Bonjour,
Je désire récupérer une requête en fonction de la variable « id » mais mon code me donne un message d’erreur.

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\hymnes_louange\3.php on line 15
voici le code:
<?php
if (isset($_GET['id'])) 
{

try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=hymnes_louanges', 'root', '', $pdo_options);
    
    $req = $bdd->prepare('SELECT id FROM hymnes_louanges WHERE id = ? AND sujet = ? AND corps <= ? ');
    $req->execute(array($_GET['id'],$_GET['sujet'], $_GET['corps']));
    
    while ($donnees = $req->fetch())
    {
        echo ' . $donnees['sujet'] . ' '. $donnees['id'] . '<br/>' . $donnees['corps'] .';
    }
    
    
    $req->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>

Re: récupérer une requête en fonction de la variable

Posté : 01 sept. 2011, 21:40
par Ryle
Euh... y a rien qui te choque ici :
 echo ' . $donnees['sujet'] . ' '. $donnees['id'] . '<br/>' . $donnees['corps'] .';
Tu as une apostrophe et un point qui trainent au début et à la fin de la chaine que tu veux afficher... du coup php ne comprend pas ou commence et ou termine la chaine. Essaie comme ceci :)
 echo $donnees['sujet'] . ' '. $donnees['id'] . '<br/>' . $donnees['corps'];

Re: récupérer une requête en fonction de la variable

Posté : 01 sept. 2011, 21:41
par moogli
j'allais donner un beau lien http://phpdebutant.org/article55.php trop tard ^^

Re: récupérer une requête en fonction de la variable

Posté : 01 sept. 2011, 21:54
par bob971
Merci,
Mais maintenant j’ai ça.
Parse error: syntax error, unexpected $end in C:\wamp\www\hymnes_louange\3.php on line 25
La ligne correspond à la de fermeture pour PHP . ?>

je suis un débutant
merci

Re: récupérer une requête en fonction de la variable

Posté : 01 sept. 2011, 22:12
par moogli
tu n'a pas fermé l'accolade du if ........

Re: récupérer une requête en fonction de la variable

Posté : 02 sept. 2011, 02:22
par bob971
Quand je clique sur le lien qui se trouve sur la page "page.php" pour aller sur la page "3.php " sur laquelle se trouve le script, j’ai cette erreur.
<a href="3.php?id=$donnees['id']"> <?php echo $donnees['sujet'] . ' ... ' . $donnees['id'] . ' <br /> '; ?></a>
Notice: Undefined index: sujet in C:\wamp\www\hymnes_louange\3.php on line 13

Notice: Undefined index: corps in C:\wamp\www\hymnes_louange\3.php on line 13
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '$donnees[\'id\']' AND sujet = NULL AND corps <= NULL' at line 1

Re: récupérer une requête en fonction de la variable

Posté : 02 sept. 2011, 12:41
par bob971
re,
je mets le code en entier, car malgré tout l'erreur est toujours là.
Notice: Undefined index: sujet in C:\wamp\www\hymnes_louange\3.php on line 13

Notice: Undefined index: corps in C:\wamp\www\hymnes_louange\3.php on line 13
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '542' AND sujet = NULL AND corps <= NULL' at line 1
pour la page "page.php".
<?php
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=moki', 'root', '', $pdo_options);
    
    if(isset($_GET['lettre']))
{
   $reponse = $bdd->query('SELECT id, sujet FROM news WHERE sujet LIKE \''.$_GET['lettre'].'%\' ORDER BY sujet'); 
}
else
{
   $reponse = $bdd->query('SELECT id, sujet FROM news ORDER BY sujet'); 
} 
    
    while ($donnees = $reponse->fetch())
	
    { ?>
    
     <a href="3.php?id=<?php echo $donnees['id']; ?>"> <?php echo $donnees['sujet'] . ' ... ' . $donnees['id'] . ' <br /> '; ?></a>
      
   <?php }
 
    $reponse->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>

pour la page "3.php"
<?php
if (isset($_GET['id'])) 
{

try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=moki, 'root', '', $pdo_options);
    
    $req = $bdd->prepare('SELECT id FROM news id = ? AND sujet = ? AND corps <= ? ');
    $req->execute(array($_GET['id'],$_GET['sujet'], $_GET['corps']));
    
    while ($donnees = $req->fetch())
    {
        echo $donnees['sujet'] . ' '. $donnees['id'] . '<br/>' . $donnees['corps'];
    }
    
    
    $req->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
}
?>

Re: récupérer une requête en fonction de la variable

Posté : 02 sept. 2011, 14:52
par moogli
est ce que tu comprend ce que tu fait ?

j'ai rajouter la ' qui manque dans l'instanciation de la classe pdo.

ensuite tu demande explicitement dans la requête SQL que l'on te fournissent l'id correspondant au prédicat.
SELECT id FROM news id = ? AND sujet = ? AND corps <= ?
or l'id tu le connais déja puisse que tu doit le passer le paramètre de la requete.

ensuite tu essai d'utiliser sujet comme si tu l'avait demandé dans la requête, hors ce n'est pas le cas, ceci dit vu que tu le fournit aussi en paramètre de la requête je ne vois pas l’intérêt, idem pour le corps !

peux tu expliquer ce que tu veux faire exactement ?

ce que tu fait dans ta page 3 n'a pas de sens ;)

tuto sur PDO http://www.siteduzero.com/tutoriel-3-34 ... x-bdd.html

@+

Re: récupérer une requête en fonction de la variable

Posté : 18 sept. 2011, 23:17
par bob971
Bonjour,
J’avais laissé de côté ce code pendant quelque jour, mais là j’en ai vraiment besoin.

J’explique ce que je veux faire.

Sur une page « A », je veux à partir de la bdd, lister par ordre alphabétique les titres sous forme de lien comme j’ai essayé de faire plus haut.
Une page « B » permet de lire l’id, le titre, et la news.

Si une personne veut bien m’aider à réaliser cela, je le remercie d’avance.