Page 1 sur 1
Problème avec echo
Posté : 16 avr. 2011, 20:22
par matmu12
Bonjour,
Je suis un débutant en php et j'ai décidé de venir ici pour recourir aux avis d'experts
J'ai un script A :
Code : Tout sélectionner
$abcd = $donnees_messages["ID"];
$des = "txt/txt_court/$abcd.txt";
if(is_file($des))//contrôle que le fichier existe
{
echo file_get_contents($des);
}
else
{
echo "fichier non disponible";
}
<br />
<strong>Jeux</strong> :
$v = $donnees_messages["jeux"];
if($v ==null)
echo "N/A";
else
echo ("<a href='$v'>$v</a>");
<br/>
<strong>toto</strong> :
$vv = $donnees_messages["toto"];
if ($vv == null)
echo "N/A";
else
echo ("<a href=mailto:$vv>$vv</a>");
<br/>
<strong>toto2</strong> :
$vvv = $donnees_messages["toto2"];
if($vvv ==null)
echo "N/A";
else
echo $vvv;
Que je souhaite intégrer a mon code ici :
Code : Tout sélectionner
echo '<h3 class="subheader"><a href="'.stripslashes($donnees_messages["jeux"]).'-'.stripslashes($donnees_messages["titre"]).'-'.stripslashes($donnees_messages["ID"]).'.php"><'.stripslashes($donnees_messages["date"]).'</a></h3>
<span class="date"><a href="'.stripslashes($donnees_messages["jeux"]).'-'.stripslashes($donnees_messages["titre"]).'-'.stripslashes($donnees_messages["ID"]).'.php">Plus de détails</a></span>
// et ici je veux rajouter mon bout de code^^
</div>';
Je dois donc le rajoiter juste avant la balise div. Mais quand je fais cela mon code n'est pas interprété et le navigateur l'affiche tel quel.
Du coup je n'arrive pas à faire fonctionner les deux.
Si quelqu'un serait me renseigner se serait super !!
Un enorme merci par avance.
Re: Problème avec echo
Posté : 16 avr. 2011, 21:32
par Invité
salut
tu as juste oublié les p'tites balises
<?php
?>
voila ...++

Re: Problème avec echo
Posté : 16 avr. 2011, 21:39
par matmu12
Merci

Mais en faite elles sont bien présente, j'ai juste donnée une partie du script, le voici en entier :
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/default.css" media="screen" />
</head>
<body>
<?php
//Connexion à la base de données
mysql_connect('localhost', 'root', '');
mysql_select_db('test1');
$messagesParPage=3; //Nous allons afficher 3 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM jeux_video'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM jeux_video ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
//Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design...
//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
// C'est ici que sa se corse
echo '
<div class="item first">
<h3 class="subheader"><a href="'.($donnees_messages["toto1"]).'-'.($donnees_messages["toto3"]).'-'.($donnees_messages["ID"]).'.php">'.($donnees_messages["toto4"]).'</a></h3>
<span class="date"><a href="'.($donnees_messages["toto1"]).'-'.($donnees_messages["toto3"]).'-'.($donnees_messages["ID"]).'.php">Plus de détails</a></span>
<div class="in">
<a href="'.($donnees_messages["toto1"]).'-'.($donnees_messages["toto3"]).'-'.($donnees_messages["ID"]).'.php"><img src="images/'.($donnees_messages["toto1"]).'-'.($donnees_messages["toto3"]).'-'.($donnees_messages["image"]).'.jpg" width="140" height="140" alt="" class="left" /></a>
<p>
<strong>Description</strong> :
<br />
<strong>Téléphone</strong> : '.($donnees_messages["toto2"]).'<br />
</p>
// C'est A partir de la que sa foire
$abcd = $donnees_messages["ID"];
$des = "$abcd.txt";
if(is_file($des))//contrôle que le fichier existe
{
echo file_get_contents($des);
}
else
{
echo fichier non disponible;
}
<br />
<strong>Site Internet</strong> :
$v = $donnees_messages["site_web"];
if($v ==null)
echo "N/A";
else
echo ("<a href=$v>$v</a>");
<br/>
<strong>E-mail</strong> :
$vv = $donnees_messages["mail"];
if ($vv == null)
echo "N/A";
else
echo ("<a href=mailto:$vv>$vv</a>");
<br/>
<strong>toto5</strong> :
$vvv = $donnees_messages["toto5"];
if($vvv ==null)
echo "N/A";
else
echo "$vvv";
</div></div>';
//J'ai rajouté des sauts à la ligne pour espacer les messages.
}
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="index.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
?>
</div>
Re: Problème avec echo
Posté : 16 avr. 2011, 22:35
par Ryle
C'est parce que tu ajoutes ton code au milieu du echo, du coup il est considéré comme une chaine de caractère et affiché comme tel... Coupe ton echo en 2 et tu pourras mettre ton code php entre ces deux instructions

Re: Problème avec echo
Posté : 16 avr. 2011, 23:15
par matmu12
Merci pour votre réponse

Mais c'est la que je sèche je n'arrive pas à le scinder et du coup je bloque oO
Comment procèder pour scinder le script ?
Re: Problème avec echo
Posté : 16 avr. 2011, 23:27
par Ryle
Tout simplement en fermant ta chaine avant
echo '<h3 class="subheader"><a href="'.stripslashes($donnees_messages["jeux"]).'-'.stripslashes($donnees_messages["titre"]).'-'.stripslashes($donnees_messages["ID"]).'.php"><'.stripslashes($donnees_messages["date"]).'</a></h3>
<span class="date"><a href="'.stripslashes($donnees_messages["jeux"]).'-'.stripslashes($donnees_messages["titre"]).'-'.stripslashes($donnees_messages["ID"]).'.php">Plus de détails</a></span>';
// d'abord tu termines la chaine
// et ici tu peux rajouter ton bout de code ,)
// et il te suffit ensuite de rajouter un nouvel echo et de poursuivre
echo '</div>';
Re: Problème avec echo
Posté : 17 avr. 2011, 00:06
par matmu12
Merci de votre aide

J'ai essayer de bidouiller mon code et j'ai donc :
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<?php
include('connexion.php')
?>
<title> </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/default.css" media="screen" />
</head>
<body>
<hr class="hidden" />
<div id="view">
<div id="head">
<h1 id="logotype"><?php echo "$toto3 $toto7";?></h1>
</div>
<hr class="hidden" />
<div id="content">
<div id="contentBlock">
<h2 class="subheader biggest" <?php echo "$toto3 $toto7";?></h2>
<?php
$messagesParPage=3; //Nous allons afficher 3 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysqli_query($conn , 'SELECT COUNT(*) AS total FROM jeux_video'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysqli_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysqli_query($conn , 'SELECT * FROM jeux_video ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
while($donnees_messages=mysqli_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
//Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design...
//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
echo '
<div class="item first">
<h3 class="subheader"><a href="'.($donnees_messages["toto3"]).'-'.($donnees_messages["toto7"]).'-'.($donnees_messages["ID"]).'.php">'.($donnees_messages["entreprise"]).'</a></h3>
<span class="date"><a href="'.($donnees_messages["toto3"]).'-'.($donnees_messages["toto7"]).'-'.($donnees_messages["ID"]).'.php">Plus de détails</a></span>
<div class="in">
<a href="'.($donnees_messages["toto3"]).'-'.($donnees_messages["toto7"]).'-'.($donnees_messages["ID"]).'.php"><img src="images/'.($donnees_messages["toto3"]).'-'.($donnees_messages["toto7"]).'-'.($donnees_messages["image"]).'.jpg" width="140" height="140" alt="" class="left" /></a>
<p>
<strong>Description</strong> :
<br />
<strong>Téléphone</strong> : '.($donnees_messages["telephone"]).'<br />
</p>'; // J'ai fermé mon echo ici
// Ici mon bout de code
$abcd = $donnees_messages["ID"];
$des = "$abcd.txt";
if(is_file($des))//contrôle que le fichier existe
{
echo file_get_contents($des);
}
else
{
echo fichier non disponible;
}
<br />
<strong>Site Internet</strong> :
$v = $donnees_messages["site_web"];
if($v ==null)
echo "N/A";
else
echo ("<a href=$v>$v</a>");
<br/>
<strong>E-mail</strong> :
$vv = $donnees_messages["mail"];
if ($vv == null)
echo "N/A";
else
echo ("<a href=mailto:$vv>$vv</a>");
<br/>
<strong>toto4</strong> :
$vvv = $donnees_messages["toto4"];
if($vvv ==null)
echo "N/A";
else
echo "$vvv";
echo '</div></div>';
//J'ai rajouté des sauts à la ligne pour espacer les messages.
}
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="index.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>'; //Ici mon dernier echo
?>
</div>
</body>
</html>
Entre temps je suis passer sur du mysqli.
Mais quand j'execute le code j'ai : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
Re: Problème avec echo
Posté : 17 avr. 2011, 11:45
par matmu12
Je viens de comprendre, j'étais hors sujet.
Grace à votre aide j'arrive à éxécuter le script, sauf une petit partie concernant :
Code : Tout sélectionner
abcd = $donnees_messages["ID"];
$des = "txt/txt_court/$abcd.txt";
if(is_file($des))//contrôle que le fichier existe
{
echo 'file_get_contents'.($des).'';
}
else
{
echo 'fichier non disponible';
}
Cela m'affiche : file_get_contentstxt/txt_court/5.txt // ID =( ici )
Mon problème vient du fait que la fonction file_get_content n'est pas éxécuté, savez vous pourquoi ?
Je vous remercie par avance.
Re: Problème avec echo
Posté : 17 avr. 2011, 14:20
par Ryle
C'est parce que tu mets des apostrophes de partout, du coup pour php il s'agit de chaines de texte qui ne sont pas interprétées
echo 'file_get_contents'.($des).''; // affiche la chaine "file_get_contents", suivie de la valeur de $des, suivie d'une chaine vide
echo file_get_contents($des); // affiche le résultat de la fonction file_get_contents()
Re: Problème avec echo
Posté : 17 avr. 2011, 16:24
par matmu12
Je vous remercie, sa fonctionne impec !!

Re: Problème avec echo
Posté : 17 avr. 2011, 18:46
par Ryle
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton
en haut à droite de la réponse qui te semble la plus pertinente.
Re: Problème avec echo
Posté : 17 avr. 2011, 21:27
par matmu12
Désolé j'avais oublié, c'est corrigé
