Problème avec Code PHP

Fermé
P@rano Messages postés 3 Date d'inscription vendredi 13 janvier 2012 Statut Membre Dernière intervention 13 janvier 2012 - 13 janv. 2012 à 08:34
P@rano Messages postés 3 Date d'inscription vendredi 13 janvier 2012 Statut Membre Dernière intervention 13 janvier 2012 - 13 janv. 2012 à 09:54
Bonjour,
Voila, j'ai un problème avec le code de mon site :
<?php
try

{

$mail = $_SESSION['mail'];

$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;

$bdd = new PDO('mysql:host=localhost;dbname=nomdelabase', 'root', '', $pdo_options);

$reponse = $bdd ->query('SELECT pseudo, message, mail FROM accueil_publi WHERE mail= "$mail"');

while ($donnees = $reponse->fetch())

{

echo '<p><span class="pseudopubli">'.htmlspecialchars($donnees['pseudo']).'</span>'.'<span class="messagepubli">'.htmlspecialchars($donnees['message']) . '</span></p>';

}

$reponse->closeCursor();

}

catch(Exception $e)

{

die('Erreur : '.$e->getMessage());

}

?>

Mon problème est le suivant : je veux en fait récupérer les messages ayant le mail que la session a, j'ai vérifié, la session contient bien un mail, et $mail aussi ! mon problème est donc le WHERE mail= "$mail"'); où en l'occurence mail est une colonne de ma base de données, rien ne s'affiche, le $mail est compté comme nul, car aucun message même si il n'a pas de mail de destinataire ne marche pas. Dernière précision, le pseudo, le message et l'email sont bien dans la base de données (j ai vérifié).
J'espère une réponse claire et rapide comme la plupart du temps,
P@rano.



A voir également:

1 réponse

Bonjour

Si tu affichais ta requête, tu verrais qu'elle contient $mail tel quel au lieu de la valeur de de la variable $mail.

Notion de base de PHP : pour qu'une variable soit remplacée par sa valeur dans une constante littérale, il faut que cette constante littérale soit déclarée avec des ", pas des '. Les simples et doubles quotes ne se jouent pas à la roulette...
=>
$reponse = $bdd ->query("SELECT pseudo, message, mail FROM accueil_publi WHERE mail= '$mail'"); 

Autre possibilité, utiliser la concaténation
$reponse = $bdd ->query('SELECT pseudo, message, mail FROM accueil_publi WHERE mail= "'.$mail.'"');
0
P@rano Messages postés 3 Date d'inscription vendredi 13 janvier 2012 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 09:54
Merci beaucoup ! j'ai utilisé le premier exemple.
0