Page 1 sur 2
affichage en php
Posté : 31 mai 2007, 12:01
par Punisher
bonjour a tous, je viens d'arriver sur ce forum car j'ai une question importante:
comment puis-je afficher la phrase "vous avez x nouveaux messages"
sachant que le x est le resultat d'une requête sql
voici ce que j'ai coder pour le moment:
<?php
if($connect) {
// connexion réussie
$sql="select count [num_postit] as [nouveaux_messages]
from post_it, type_message
where post_it.num_typemessage = type_message.num_typemessage and libelle_typemessage = nouveaux";
//execution de la requête
$requete= mssql_query($sql) or die(sql_error());
//on affiche le résultat
$donnees= mssql_fetch_assoc($requete);
//-------affichage du nombre de nouveaux message------
echo ????
else
echo "problème à la connexion<BR>";
mssql_close($connect)
?>
comment je dois coder après le echo qui sert pour l'affichage ?
merci de repondre rapidement !
Posté : 31 mai 2007, 12:17
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Débuter en PHP".
Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
Posté : 31 mai 2007, 12:26
par Punisher
oups desoler

Posté : 31 mai 2007, 13:35
par Sékiltoyai
Fais un var_dump($donnees); ca te donnera le contenu de la variable et donc comment récupérer la donnée dont tu as besoin.
Posté : 31 mai 2007, 14:38
par Punisher
le var_dump($donnees) je l'utilise comme ça ?
echo 'vous avez ' var_dump($donnees) 'nouveaux messsages'
Posté : 31 mai 2007, 14:56
par Ryle
Nope, le var_dump() ou print_r() te permet d'afficher la structure d'un objet ou d'un tableau (index, attributs, valeurs..) :
echo '<pre>';
print_r($donnees);
echo '</pre>';
les balises <pre> imposent au navigateur de ne pas formater le code, ce qui le rend plus lisible (retour à la ligne et tabulations conservées)
Tu devrais obtenir quelque chose du genre :
Code : Tout sélectionner
array (
clé1 => 'valeur1',
clé2 => 'valeur2',
clé3 => 'valeur3'
)
Ce qui te permet de connaitre les index disponibles et les valeurs associées. Quant à l'affichage d'une valeur, il te suffit donc de spécifier l'index du tableau auquel tu veux accéder :
echo $donnees['clé2']; // affichera 'valeur2'
Posté : 31 mai 2007, 15:06
par Punisher
heu, en gros ça donne quoi le code que je dois saisir?
echo ....
voici ce que j'ai coder pour le moment:
<?php
if($connect) {
// connexion réussie
$sql="select count [num_postit] as [nouveaux_messages]
from post_it, type_message
where post_it.num_typemessage = type_message.num_typemessage and libelle_typemessage = nouveaux";
//execution de la requête
$requete= mssql_query($sql) or die(sql_error());
//on affiche le résultat
$donnees= mssql_fetch_assoc($requete);
//-------affichage du nombre de nouveaux message------
echo ????
else
echo "problème à la connexion<BR>";
mssql_close($connect)
?>
parce que ça doit m'afficher la phrase : vous avez X nouveaux message ou X est obtenu grâce a ma requête. la seule chose que je sais pas c'est comment interpréter le resultat et l'afficher dans la phrase.
parce qu'avec ce que chacun a dit je suis un peu perdu... :

Posté : 31 mai 2007, 15:48
par Sékiltoyai
Je t'ai dit de tester le contenu de $donnees en placant juste après
$donnees= mssql_fetch_assoc($requete);
le code var_dump($donnees) pour savoir quoi mettre dans ton echo. Si tu ne fais pas ce qu'on te demande, ne demande pas d'aide...
Posté : 31 mai 2007, 15:50
par Ryle
Il te suffit de faire une chaine en concaténant tes morceaux de phrases et ta valeur
echo 'vous avez ' . $X . ' nouveaux message';
où $X est la variable qui contient le nombre de message (et dont on a expliqué comment la retrouver plus haut

)
Posté : 31 mai 2007, 16:00
par Punisher
ok,
maintenant, il indique:
Parse error: syntax error, unexpected T_ECHO in C:\wamp\www\intranet\index.php on line 80
qui correspond a la ligne de mon echo :
echo 'vous avez'.$donnees['NbreNouveauxMsg'].'nouveaux messages';
je vois pas trop ou est l'erreur de syntaxe... help-me!

Posté : 31 mai 2007, 16:17
par Ryle
Ton code mal indenté... réorganise le proprement (ouverture d'une structure décalage à droite, fermeture d'une structure décalage à gauche), je pense qu'il te manque une accolade fermante

Posté : 31 mai 2007, 16:30
par Punisher
Ton code mal indenté... réorganise le proprement (ouverture d'une structure décalage à droite, fermeture d'une structure décalage à gauche), je pense qu'il te manque une accolade fermante

non ça ce bon, l'accolade est en place mais le problème persiste...
Posté : 31 mai 2007, 16:47
par Ryle
bah redonne ton code (nottament les quelques lignes qui précèdent, puisque le message d'erreur est que le "echo" est innatendu à cette position, c'est que tu as un soucis avant, genre point-virgule absent ou autre...

Posté : 31 mai 2007, 17:00
par Punisher
ok, voila.
j'ai revérifier mais j'ai toujours pas trouver...
<!-- DEBUT MENU -->
<?php
if ($_SESSION['active'] == true)
{
echo '<p>Bonjour '.$_SESSION['pseudo'].'</p>';
echo '<p><a href="deconnexion.php">Se déconnecter</a></p>';
}
else
{
$connect = mssql_connect("HORUS", "", "");
}
if($connect)
{
// connexion réussie
$sql = "SELECT count [num_postit] AS [NbreNouveauxMsg]
FROM post_it, type_message
WHERE post_it.num_typemessage = type_message.num_typemessage
AND libelle_typemessage = nouveaux
";
//execution de la requête
$requete= mssql_query($sql);
//on affiche le résultat
$donnees= mssql_fetch_assoc($requete);
var_dump($donnees)
//-------affichage du nombre de nouveaux message------
echo "vous avez" .$donnees['NbreNouveauxMsg']. "nouveaux messages";
}
else
{
echo "problème à la connexion<BR>";
mssql_close($connect);
}
?>
Posté : 31 mai 2007, 17:22
par Sékiltoyai
le var_dump, c'était pour tester, vu que tu ne t'en sers pas, enlève le...