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 ...++ :D

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 Image 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é ;)