Print PHP

Bonjour,

Je rencontre à nouveau un soucis :)

Je dispose du code suivant, qui me permet d'aller chercher dans une table des infos et il les affiche avec les deux "print" :
<?php
include ("includes/connect_sql.php"); # parametres de connection SQL

$rs = mysql_query("select count(*) from news"); # nombre de news
$r = mysql_fetch_row($rs);
$tot = $r[0];
$limit = 6;  # nombre de news affichées par défaut

if (isset($_GET['l'])) {$_GET['l'];$limit = $_GET['l']; # si la variable 'l' existe alors $limit = l;
                                          # permet de modifier $limit via l'url du type [news.php?l=10]
                  }#end_if

$result = mysql_query("SELECT date,news FROM news WHERE 1 ORDER BY date DESC LIMIT $limit"); # on selection les $limit dernieres news

if(mysql_num_rows($result)) # si resultat different de vide alors
{
   while($row=mysql_fetch_row($result)) # boucle pour séparer les resultats
      {   $date = $row[0];
         $date = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3.$2.$1', $date); # DateSQL => DateFR
         $news = $row[1];

         print ("<h3>$date</h3>");
         print ("$news<br>");
      }#end_while
}#end_if
if ($limit > $tot){} else { # si on affiche plus de news qu'il n'y en a alors rien sinon faire un lien pour tout afficher
                  $i = $tot + $limit; # $i est forcément > à $limit
                  print("<a href='index.php?n=news&l=".$i."'>Pour voir toutes les news.</a>");
                  }#end_if
?>


C'est un module de news. Pour afficher mes news j'écris le "print" a l'endroit voulu, cela fonctionne. Mais l'architecture de présentation de mes news est sous forme de
<ul>
<li>Premiere news</li>
<li>deuxieme news</li>
</ul>


J'aurais besoin d'afficher qu'une seule news par "<li>" , comment faire ?

merci d'avance



--
Guillaume ARIZZI
Assitant Administrateur Réseau

5 réponses

  1. Salut,

    Je comprends mal ta question... Tu dis :

    C'est un module de news. Pour afficher mes news j'écris le "print" a l'endroit voulu, cela fonctionne. Mais l'architecture de présentation de mes news est sous forme de

    <ul>
    <li>Premiere news</li>
    <li>deuxieme news</li>
    </ul>

    J'aurais besoin d'afficher qu'une seule news par "<li>" , comment faire ?


    Mais c'est exactement ce que tu as, non ? Le premier <li> contient une new, l'autre <li> en contient une autre ?

    À moins que j'aie mal compris et qu'en fait tu obtiennes un résultat totalement différent ?
    1. En effet ca marche comme ca. Mais par rapport au traitement des informations juste au dessus, lorsque j'écris
      <ul>
      <li>
      <?php
               print ("<h3>$date</h3>");
               print ("$news<br>"); ?>
      </li>
      <li>deuxieme news</li>
      </ul>
      

      il m'affiche toutes mes news en une seule fois. et si je copie le même code à la place de "deuxieme news" j'optiens deux fois toutes mes news.

      Est ce plus clair ?
      1. Contributeur
        une news par page? alors il ne faut pas faire de boucle et supprimer le WHILE.
        1. OK je comprends mieux ton problème.

          Essaie ceci. Au lieu de ta boucle while(), fais :

          print_r(mysql_fetch_array($result)); 
          

          On va pouvoir mieux voir ce que ta requête SQL te retourne exactement. Poste-nous le résultat, ou dis-nous la forme que ça prend...
          Avant de critiquer quelqu'un, marche un mile dans ses souliers. Comme ça, s'il est enragé par ta critique, il est à un mile de distance et pieds nus.
          1. Array ( [0] => 2011-11-08 [date] => 2011-11-08 [1] => C'est un site nouveau qui vous permet...[news] => description 


            Voici ce que je vois sur ma page de news
            1. Bizarre ça... Ta base de données doit être drôlement organisée...
              Peux-tu nous faire un export de ta table news et nous le poster ? Cache l'information privée en remplaçant des bouts de texte par des "[...]" si tu veux.