Bonsoir,
J'ai suivi le tutoriel de création d'un système de news, qui fonctionne très bien en 100% PHP,le problème est que mon design m'impose de coder chaque news individuellement. De plus la combinaison HTML / PHP ne se fait pas
www.nemezix-esport.fr/v1.1
<div id="news-right">
<?php
require "config/config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$sql="SELECT titre FROM articles ORDER BY date";
$req = mysql_query($sql) or die ('Erreur SQL !<BR />'.$sql.'<br />'.mysql_error());
while($data == mysql_fetch_assoc($sql):?>
<div class="news-title"><?php echo $data'titre'];?>
</div>
<div class="news_text_com">Ecris par <a href="#">Pseudo</a>, Le 27 mars 2014</div>
</div>
<a class="button-rm" href="#">Lire la suite !</a>
<div class="clear"></div>
</div>
<div id="news_text"><p><?php echo $data'description'];?></p></div>
<?php endwhile;?>
<div class="clear"></div>
</div>
<!-- News 2 -->
Si c'est pas ça c'est que je suis vraiment con :(
Oui voici
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>NéméZix eSport | eSport Organisation</title>
<link rel="icon" href="images/favicon.ico" />
<link rel="apple-touch-icon" href="images/apple-touch-icon.png" />
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
require "config/config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$sql="SELECT * FROM news";
$req = mysql_query($sql) or die ('Erreur SQL !<BR />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_assoc($req))
?>
<div id="h-top">
<div id="h-top-nav">
<div id="nav">
<ul>
<a href="#"><li>Accueil</li></a>
<a href="#"><li>L'Association</li></a>
<a href="#"><li>NéméZix Tv</li></a>
<a href="#"><li>Forum</li></a>
<a href="#"><li>Boutique</li></a>
<a href="#"><li>Contact</li></a>
</ul>
</div>
<div id="news-left">
<div class="center_post_img management"></div>
</div>
<div id="news-right">
<div class="news-title"><?php echo $data"titre"];?></div>
<div class="news_text_com">Posté par <a href="page/profile/">Mimk</a>, Le 26 Mars 2014 à 17h40</div></div><a class="button-rm" href="page/story/125/index.html">Lire la suite !</a><div class="clear"></div></div>
<div id="news_text"><p>À l'occasion du COD Champs 2014, Activision annoncent un double XP pour le week-end du 29 mars. Un grand week-end dédié à Call of Duty, donc, et son multijoueur. Cette mise en place prendra effet le 28 mars, date à laquelle le Championship débutera et se clôturera le 31 mars, soit lundi prochain. Tous les joueurs et ce quelle que soit la plateforme se verront rétribués doublement en expérience durant ce laps de temps.</div>
</body>
</html
Le problème c'est que je souhaiterais intégre dans mon site le titre d'une news qui es sur ma BDD pareil pour le contenu
mais le titre ne s'affiche pas de plus quand il s'affiche j'ai le titre de toute les news de la base sur la meme place je ne sais pas comment faire pour qu'il n'y es que un titre
j'ai réussi à afficher les titres mais comment faire pour qu'il n'y en es qu'un seul qui s'affiche
Regarde cet exemple :
<?php
$reponse = $db->query('SELECT titre FROM news');
while ($donnees = $reponse->fetch()):?>
<h2> <?php echo $donnees'titre'];?> </h2>
<p> <?php echo $donnees'contenu'];?></p>
<?php endwhile;?>
Si tu veux affiche qu'une seule news, la 5ème par exemple, tu fera :
<?php
$reponse = $db->query('SELECT titre FROM news');
$donnees = $reponse->fetch();
echo $donnees[4]'titre'];
Avec la fonction "fetch()" tu récupère un tableau de valeur avec un indice, une clé, une valeur .
Tu devrais regarder ce que retourne ce bout de code pour analyser ton problème :
echo '<pre>';
print_r($donnees);
echo '</pre>'
Bah je veux pas quelle soit fixe mais en gros si je poste une news le 27 Mars elle sera en haut du site. et si j'en poste une le 28 mars celle du 27 mars passera deuxième et celle du 28 sera donc première
... C'est un problème SQL alors . Tu dois trier tes news avant de le récupére :
$sql = "SELECT * FROM news ORDER BY id"
Si tu as une date de création dans ta table, remplace "id" par le champs date
Elle son bien classé merci mais il reste toujour le problème qui es visible sur le site le titre regroupe le titre de toute les news
hors je souhaiterais qu'il y en es que un de même pour le reste puisque il me reste à integret la description est le contenu a nouveau voici mon code
<div id="news-box"><!-- News 1 -->
<div id="news-top-section">
<div id="news-left">
<div class="center_post_img management"></div>
</div>
<div id="news-right">
<div class="news-title">
<?php
require "config/config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$sql="SELECT titre FROM articles ORDER BY date";
$req = mysql_query($sql) or die ('Erreur SQL !<BR />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_assoc($req)) {
echo $data"titre"]; }?>
</div>
<div class="news_text_com">Ecris par <a href="#">Pseudo</a>, Le 27 mars 2014</div>
</div>
<a class="button-rm" href="page/story/125/index.html">Lire la suite !</a>
<div class="clear"></div>
</div>
<div id="news_text"><p>À l'occasion du COD Champs 2014, Infinity Ward et Activision annoncent une campagne double XP
pour le week-end du 29 mars. Un grand week-end dédié à Call of Duty, donc, et son multijoueur. Cette mise en place
prendra effet le 28 mars, date à laquelle le Championship débutera et se clôturera le 31 mars, soit lundi prochain.
Tous les joueurs et ce quelle que soit la plateforme se verront rétribués doublement en expérience durant ce laps de temps. </div>
<div class="clear"></div>
</div>
<!-- News 2 -->
Actuellement j'ai deux News sur ma base de donné avec 5 champ id,titre,description,contenu,date
<?php
$sql = mysql_query("SELECT * FROM news ORDER BY date");
while($data == mysql_fetch_assoc($sql):?>
<div class="new">
<h3> <?php echo $data'titre'];?> </h3>
<p> <?php echo $data'description'];?> </p>
<?php endwhile;?>
C'est tout ce qu'il y a faire ...
Comme sa alors ?
<div class="news-title">
<?php
require "config/config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$sql = mysql_query("SELECT * FROM articles ORDER BY date");
$req = mysql_query($sql) or die ('Erreur SQL !<BR />'.$sql.'<br />'.mysql_error());
while($data == mysql_fetch_assoc($sql): {
echo $data"titre"]; }?>
</div>
<div class="news_text_com">Ecris par <a href="#">Pseudo</a>, Le 27 mars 2014</div>
</div>
<a class="button-rm" href="#">Lire la suite !</a>
<div class="clear"></div>
</div>
<div id="news_text"><p><?php echo $data'description'];?></p></div> <?php endwhile;?>
<div class="clear"></div>
</div>
Non, regarde mon code !
Ta boucle (while) tu peux la faire de deux manières :
while($data == mysql_fetch_assoc($sql)
{
echo '<h3> '.$data'titre'].' </h3>';
}
// OU bien :
while($data == mysql_fetch_assoc($sql):?>
<h3> <?php echo $data'titre'];?> </h3>
<?php endwhile;?>
La dans ton code, tu fermes ton while alors que tu n'a affiché que le titre ...
Tu as un erreur de synthax , une boucle infinie, cherche bien . Vérifies que toutes tes balises soient fermée (php et html)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>NéméZix eSport | eSport Organisation</title>
<link rel="icon" href="images/favicon.ico" />
<link rel="apple-touch-icon" href="images/apple-touch-icon.png" />
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="h-top">
<div id="h-top-nav">
<div id="nav">
<ul>
<a href="#"><li>Accueil</li></a>
<a href="#"><li>L'Association</li></a>
<a href="#"><li>NéméZix Tv</li></a>
<a href="#"><li>Forum</li></a>
<a href="#"><li>Boutique</li></a>
<a href="#"><li>Contact</li></a>
</ul>
</div>
<div class="h-top-cont">
<span id="status_func">
<a href="page/login/index.html">Connexion</a> <a style="margin-left:20px;" class="blue" href="page/register/index.html">Inscription</a>
</span>
</div>
</div>
</div>
<div id="header">
<div id="hcontent">
<div id="logo"><a href="index.html"><img src="images/logo.png" /></a></div>
<span style="padding-top:60px;float:right;">
<span style="font-size:12px;float:right; letter-spacing:5px;color:#dddddd;">Powered By</span><br />
<a target="_blank" href="http://www.dailymotion.com/NemeZixTv"><img style="margin:0px 20px;" src="images/sponsor/dailymotion.png" /></a>
</span>
</div>
</div>
<div id="wrapper">
<div id="slider-holder">
<div id="slider">
<img src="images/slider/slider_1.png" />
</div>
<div>
</div>
</div>
<div id="content">
<div id="cmain">
<div id="news-box"><!-- News 1 -->
<div id="news-top-section">
<div id="news-left">
<div class="center_post_img management"></div>
</div>
<div id="news-right">
<?php
require "config/config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$sql="SELECT titre FROM articles ORDER BY date";
$req = mysql_query($sql) or die ('Erreur SQL !<BR />'.$sql.'<br />'.mysql_error());
while($data == mysql_fetch_assoc($sql)):?>
<div class="news-title"><?php echo $data'titre'];?>
</div>
<div class="news_text_com">Ecris par <a href="#">Pseudo</a>, Le 27 mars 2014</div>
</div>
<a class="button-rm" href="#">Lire la suite !</a>
<div class="clear"></div>
</div>
<div id="news_text"><p><?php echo $data'description'];?></p></div>
<?php endwhile;?>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</body>
</html>
$sql="SELECT titre FROM articles ORDER BY date";
Avec cette requete tu séléctionne seulement le titre, et pourtant dans ton code tu souhaite afficher la description .
Il suffit de faire un select *
Merci pour ce petit détail mais sa ne règle rien mise à part que le site ce r'affiche mais pas correctement ...