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

32 réponses


Mimk
Auteur
Réponse acceptée
<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 :(

Ok ... un code à fournir peut être ?

Mimk
Auteur

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

Et donc, quel est réellement ton problème ? Que cherches tu a faire ?

Mimk
Auteur

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

Mimk
Auteur

Voila j'ai mis le problème sur le site

Déjà, tu devrais fermer ton while ... je ne vois pas de <?php endwhile;?>

Mimk
Auteur

Je le ferme ou ? Je suis novice en PHP Dsl

Mimk
Auteur

Sa ne fonctionne pas mon site ne s'affiche plus

Mimk
Auteur

Pardon ? désolé mais je suis Novice

Mimk
Auteur

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>'
Mimk
Auteur

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

Mimk
Auteur

Oui j'ai le champ date

Mimk
Auteur

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 -->

J'avoue ne pas comprendre ton problème là ...

Mimk
Auteur

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 ...

Mimk
Auteur

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 ...

Mimk
Auteur

J'en suis désolé je suis vraiment débutant en PHP et donc j'ai énormément de mal

Ba voilà ;)

Mimk
Auteur

Sauf que la plus rien s'affiche ...

Tu as oublié de fermé une parenthèse dans le while

Mimk
Auteur

Oui je l'est fermer mais c'est le bordel sur le site ... je n'arrive plus à le charger

Tu as un erreur de synthax , une boucle infinie, cherche bien . Vérifies que toutes tes balises soient fermée (php et html)

Mimk
Auteur

Tout es fermé

Mimk
Auteur
<!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 *

Mimk
Auteur

Merci pour ce petit détail mais sa ne règle rien mise à part que le site ce r'affiche mais pas correctement ...