Page 1 sur 2

lien en php

Posté : 18 sept. 2011, 20:23
par bob971
Bonjour,
je voudrais savoir comment rajouter les requêtes : $_GET['sujet'] et $_GET['corps'] dans le lien suivant en poo.
<a href="lien.php?id=<?php echo $donnees['id']; ?>"> mon lien </a>
Merci d’avance.

Re: lien en php

Posté : 18 sept. 2011, 20:51
par bob971
En fait ça serait plus : $donnees['sujet'] et $donnees['corps'].

Re: lien en php

Posté : 18 sept. 2011, 20:53
par AB
Heu ... avec ton lien on ne peux récupérer pour l'instant que $_GET['id'], si tu en veux plus il faut les rajouter :
<a href="lien.php?id=<?php echo $donnees['id']?>&sujet=<?php echo $donnees['sujet']?>&corps=<?php echo $donnees['corps']?> "> mon lien </a>
(en supposant que $donnees['sujet'] et $donnees['corps'] existent)

Re: lien en php

Posté : 18 sept. 2011, 20:58
par AB
Ah oui si tes données qui passent dans l'url peuvent contenir des caractères spéciaux tu peux utiliser en complément rawurlencode

Re: lien en php

Posté : 18 sept. 2011, 21:09
par bob971
Est-ce que je peux poster tout le code ?
Car j’ai un autre message d’erreur

Code : Tout sélectionner

rreur : 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 'WHERE news id = '358' AND sujet = 'C\'est un rempart' AND corps <= '

Re: lien en php

Posté : 18 sept. 2011, 23:43
par Ryle
Tu as une erreur dans la requête SQL que tu génères... à priori le problème se trouve avant le WHERE (mais tu as aussi une erreur après : " WHERE news id = '358' ")

Si news est le nom de ta table il devrait être entre le FROM et le WHERE et non après le WHERE

Re: lien en php

Posté : 19 sept. 2011, 02:00
par bob971
Comme j’ai 2 pages, j’avais oublié de mettre WHERE sur une des 2

Mais les erreurs se poursuivent. Que veux dire :
Notice: Undefined index: sujet in C:\wamp\www\moki\3.php on line 21

Notice: Undefined index: corps in C:\wamp\www\moki\3.php on line 21
Pour cette ligne:
{
        echo $donnees['sujet'] . ' '. $donnees['id'] . '<br/>' . $donnees['corps'];
    }

Re: lien en php

Posté : 19 sept. 2011, 02:42
par AB
cela veut dire que $donnees['sujet'] et $donnees['corps'] ne sont pas définies.

Re: lien en php

Posté : 19 sept. 2011, 04:18
par bob971
Je suis un débutant, peut-on me dire comment faire en sorte qu’ils soient définis et me donner un grand coup de pouce pour ce code.
Je mets tout le code, aidez moi s’il vous plait.

page.php
<?php
for($i = 'A'; $i != 'AA'; $i++){
 echo '<a href="page.php?lettre='.$i.'">'.$i.'</a> ';
} 
?>
<br /><br />
<?php
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=hymnes_louanges', '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']?>&sujet=<?php echo $donnees['sujet']?>&corps=<?php echo $donnees['corps']?> "> <?php echo $donnees['sujet'] . ' ... ' . $donnees['id'] . ' <br /> '; ?></a>
      
   <?php }
 
    $reponse->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?> 
  

3.php
<?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 news 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: lien en php

Posté : 19 sept. 2011, 19:44
par Ryle
Quand tu fait un SELECT id FROM news, MySQL va te retourner uniquement les valeurs pour le champ id. Du coup quand avec php tu demandes d'afficher les valeurs de sujet et corps, il te retourne un message d'avertissement pour te demander si tu te moque de lui, vu que tu lui demandes d'afficher des valeurs qu'il n'a pas ;)

Un "SELECT id, sujet, corps FROM news ..." devrait te permettre de résoudre le problème :)

Re: lien en php

Posté : 20 sept. 2011, 01:02
par bob971
Je n’ai plus de messages d’erreur, mais juste un petit souci. Quand le texte s’affiche dans le navigateur, j’ai toutes les balises <br/> </p> qui s’affiche a l‘intérieur de ce dernier.

Code : Tout sélectionner

Exemple : Lorem Ipsum <br/>is simply dummy text <br/>of the printing and typesetting <br/>industry</p>
Que dois je faire ?

Re: lien en php

Posté : 20 sept. 2011, 14:34
par Ryle
C'est probablement parce qu'au moment où tu affiches tes données tu dois faire appel à htmlentities() ou a un équivalent. Du coup le code html contenu dans ta chaîne est transformé en texte et le navigateur l'affiche à l'écran au lieu de l'interpréter...

Re: lien en php

Posté : 20 sept. 2011, 19:42
par bob971
Comment mettre htmlentities pour afficher le texte correctement ?

Re: lien en php

Posté : 20 sept. 2011, 21:24
par bob971
Oui tout fonctionne très bien maintenant. :D
Merci.
Je voudrai savoir si on peut mettre un lecteur mp3 qui joue en fonction de l’id.

Re: lien en php

Posté : 22 sept. 2011, 03:12
par AB
Ben oui si tu as un champs dans ta bdd qui correspond à un nom de fichier, tu peux le récupérer puis le passer à un lecteur mp3