8792 sujets

Développement web côté serveur, CMS

Bonjour ,
J'ai essayé de chercher un peu partout , mais vu que je ne suis pas un bon programmeur php je poste mon problème ici
Donc j'ai utiliser un script de news extra basique avec que quelques entrés ( newsId , auteur , date ,titre et news )

Donc avec ça , j'aimerais placer dans la page un liens vers chaque news mais qui utilise une ancre (j'espere que vous me suivez )
J'ai déjà ma petite idée pour ça mais reste à le coder :S :

<h2 id="<?php echo $data['newsId'];?>"><?php echo htmlspecialchars($data['titre']);?></h2>


Je n'arrive pas à faire une liste de news avec les balises <li></li> dans l'ordre décroissant de la newsId .
J'espre avoir de l'aide et merci .
Modifié par bledfeet (30 May 2006 - 12:29)
Salut,

Pour arriver à tes fins, tu dois tout d'abord lister le nombre de nouvelles qu'il y a dans ta BDD, puis faire une boucle qui te les listera jusqu'à ce que tu sois arrivé à la dernière. Pour cela, je te propose quelque chose dans ce style :
$residun = mysql_db_query("$dbName", "SELECT * FROM "$dbTable" ORDER BY date DESC", $dbConn);  
$nblignes=mysql_num_rows($residun);

Cela te permet de te connecter à ta base de donnée -$dbName- et de chercher les informations dans la table en question -$dbTable- grâce à tes informations de connexion -$dbConn-.
Les résultats sont listés du ordre chronologique, puis on compte le nombre d'entrées présentes.


Après il te reste qu'à ouvrir une liste (<ul> ou <ol>), puis à demander que pour chaque nouvelles on indique un lien. Pour cela, on utlise une boucle (while) qui, pour chaque entrée, te crée un nouveau point dans ta liste pour y affecter un élément (en l'occurence un lien dans ton cas). Et enfin, lorsque ta boucle est terminée et que tous tes renseignements sont indiqués, tu refermes ta liste (</ul> ou </ol>):
echo "<ul>";
while($tab_res=mysql_fetch_array($residun)){
extract($tab_res);
echo "<li><a href=\"#a"."$newsID\">$titre</li></a>";}
echo "</ul>";


Il ne te reste maintenant plus qu'à mettre dans ta page tes news en forme avec une ancre nommée (dans le titre par exemple) qui sera de la forme : id="a.$newsID" (un id ne pouvant pas commencer par une lettre, j'ai rajouter a devant...)

J'espère que maintenant tu y vois plus clair... Smiley ravi
Et que je n'est pas été trop incompréhensible... Smiley rolleyes
Merci bien , j'ai fait 2 - 3 reotouches à ton script ^^
Ma page n'etait pas valide xhtml car je ne savait pas qu l'ID devait commencer par une lettre , merci de la précision Smiley langue
Mais ta requete mysql n'etait pas valider par mon serveur , j'ai du la midifier un tit peu Smiley smile

<?php
mysql_connect("sql.free.fr", "xxxt", "xxx");
?>
<?php
mysql_select_db("bledfeet");
$residun = mysql_query("SELECT * FROM cap_news ORDER BY newsId DESC");  
$nblignes = mysql_num_rows($residun);



echo "<ul>";
while($tab_res = mysql_fetch_array($residun)){
extract ($tab_res);
echo "<li><a href=\"#ancre_"."$newsId\">$titre</a></li>";}
echo "</ul>";
?>

Modifié par bledfeet (30 May 2006 - 12:29)