Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: PrimFX, tancraft65, TheFlameflo
Auteur Sujet: Système de news

tancraft65

Messages: 29

Salut PrimFx

j'aurais besoin de toi pour créer un système de news j'ai fait plusieurs essais qui n'ont pas fonctionner
ci tu pouvais faire une vidéo dessus ou autre ça serait gentil.
Publicité

tancraft65

Messages: 29

si possible avoir un lien de téléchargement 

TheFlameflo

Messages: 303

https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php/tp-un-systeme-de-news
Essaye de suivre ce tutoriel, mais c'est en POO !
Du coup, si tu n'es pas rendu là, tu peux toujours essayer de trouver un autre tutoriel plus convenable !

tancraft65

Messages: 29

je lais déja fait mes sa na pas marcher !!!

PrimFX
Membre Premium

Messages: 113

Bizarre que le tuto que TheFlameflo t'as envoyé ne fonctionne pas...
Un système de news est assez long a expliquer, je te ferai un post plus détaillé demain Clin d'oeil
En attendant tu peux peut-être t'aider des autres tutos PHP que j'ai fait et qui devraient théoriquement te permettre d'arriver à créer ton système de news Sourire

tancraft65

Messages: 29

ok merci 
tu veux dire quoi par la  je te ferai un post plus détaillé demain ?

TheFlameflo

Messages: 303

Si tu veux, il y a longtemps j'ai créé un petit script sympa que tu peux modifier à ta guise si tu le veux :
<?php 
        include("inc/config.php");    #Inclus la connexion à la bdd
        $req = $bdd->query('SELECT title, contenu, date_creation FROM news ORDER BY id DESC'); #Requête pour récupérer les news
            while($news = $req->fetch()) #Boucle qui les affiche
            {
            ?>
            <div class="contenu">
                <h3><?php echo nl2br($news['title']); ?></h1> #Affiche le titre
                <p><?php echo nl2br($news['contenu']); ?> </p> #Affiche le contenu
                <p class="date_creation"><?php echo $news['date_creation']?></p> #Affiche la date
                
      </div>
      <?php
        }
        $req->closeCursor(); #Ferme la boucle
        ?>

Ça, c'est la partie qui permet d'afficher les news. Je te conseille d'ajouter dans les requêtes une limite (5 dernières) ou tu suis le tuto de PrimFX sur la pagination  (https://www.youtube.com/watch?v=yqoYvUuePvM).
Je crois qu'il y a rien d'autre à expliquer.
<?php 
include("includes/config.php"); #Inclus la connexion à la BDD
if(isset($_POST['submitnew'])) #Série de test, je te laisse les lire et les comprendre
{
   $titre = htmlspecialchars($_POST['title']);
   $contenu = ($_POST['contenu']);
   if(!empty($_POST['title'] AND !empty($_POST['contenu'])))
   {
      $reqtitre = $bdd->prepare('SELECT * FROM news WHERE titre = ?');
      $reqtitre->execute(array($titre));
      $titreexist = $reqtitre->rowCount();
         if($titreexist == 0) {
            $insertnew = $bdd->prepare('INSERT INTO news(title, contenu, date_creation) VALUES(?, ?, CURDATE())'); 
            #Requête qui insère la new si tous les tests sont passés
            $insertnew->execute(array($titre, $contenu));
            $erreur = "News créée avec succès !";
         }
         else
          {
             $erreur = "Ce titre existe déjà.";
          }
   }
   else
   {
      $erreur = "Tous les champs doivent être remplis.";
   }
}
?>
<div>
   <h2>Création de news</h2>
   <br/> <br />
   <form method="POST" action="">
      <table>
<tr>
   <td align="right">
      <label for="titre">Titre :</label>
   </td>
   <td>
      <input type="text" placeholder="Le titre" id="titre" name="title">
   </td>
</tr>
<tr>
   <td align="right">
      <label for="contenu">Contenu</label>
   </td>
   <td>
      <textarea placeholder="Le contenu" id="contenu" name="contenu" rows="10" cols="50">
        </textarea>
   </td>
</tr>
<tr>
   
   <td>
      <input type="submit" value="Confirmer" name="submitnew">
   </td>
</tr>
      </table>
   </form>
   <?php
         if(isset($erreur))
         {
            echo '<font color="red">'.$erreur."</font>";
         }
         ?>
Ça c'est la partie qui permet de créer une nouvelle news. Veille à ce qu'elle soit protégée par .htaccess, si tu ne sais pas comment faire, il y a plein de tutos qui l'expliquent.
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `title` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  `contenu` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `date_creation` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=0 ;
Je te donne la structure de ma table news, en gros, c'est un id en Auto Increment, un titre de 60 caractères, un contenu mediumtext et une date de création.

Malheureusement, je n'ai pas trouvé mon code qui permettait de supprimer et modifier les news. Désolé ! :/
Je n'ai pas inclus d'espace commentaire non plus, alors, je te laisse t'inspirer de mon code pour créer quelque chose d'encore mieux ! Sourire

tancraft65

Messages: 29

merci pour tout

PrimFX
Membre Premium

Messages: 113

@tancraft65 quand je disais que je te ferai un post plus détaillé je voulais dire une réponse avec plus d'éléments qui pourraient te guider Clin d'oeil Mais je vois que @TheFlameflo a très bien répondu et t'as donné pas mal de code qui pourra t'aider !

Bref, si tu as d'autres questions, n'hésite pas ! Et si la réponse de @TheFlameflo a résolu ton problème, n'oublie pas de passer le topic en "Résolu" Sifflotant


Veuillez vous connecter ou créer un compte pour poster une réponse