Problème systeme de news

Par Mimk, il y a 12 ans


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, il y a 12 ans

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

Benjamin Derepas, il y a 12 ans

Ba voilà ;)

Mimk, il y a 12 ans

Sauf que la plus rien s'affiche ...

Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

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

Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

Tout es fermé

Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

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
Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

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, il y a 12 ans

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

Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

Je le ferme ou ? Je suis novice en PHP Dsl

Mimk, il y a 12 ans

Sa ne fonctionne pas mon site ne s'affiche plus

Mimk, il y a 12 ans

Pardon ? désolé mais je suis Novice

Mimk, il y a 12 ans

j'ai réussi à afficher les titres mais comment faire pour qu'il n'y en es qu'un seul qui s'affiche

Benjamin Derepas, il y a 12 ans

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, il y a 12 ans

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

Benjamin Derepas, il y a 12 ans

... 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, il y a 12 ans

Oui j'ai le champ date

Mimk, il y a 12 ans

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 -->
Benjamin Derepas, il y a 12 ans

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

Mimk, il y a 12 ans

Actuellement j'ai deux News sur ma base de donné avec 5 champ id,titre,description,contenu,date

Benjamin Derepas, il y a 12 ans
<?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, il y a 12 ans

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>
Benjamin Derepas, il y a 12 ans

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, il y a 12 ans
<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 :(

Mimk, il y a 12 ans
<!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>
Benjamin Derepas, il y a 12 ans
$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, il y a 12 ans

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