PHP

Programmer une publication pour blog

Résolu

Bonjour,


Désolé d'être 'sorti' un peu du site.


J'ai un formulaire qui rentre la date de publication, elle rentre dans la base de donnés mais ça ne marche que pour le passé. Moi j'aimerais un script pour que si on dit que l'article sorte le 12 mars il sort le 12 mars

1297 vues
08 janvier 2020 à 22:25 (Édité)
Cette pub permet au site de vivre ...

16 commentaires

Re:


Si tu n'as plus de problèmes, tu peux mettre en "Résolu" 😉

@Kam3leoN créera son propre topic 😉

Bonjour,


Merci de la réponse à @clouder

Le code finale est le code çi-dessous,


<?php
    ini_set('display_errors','on');
    error_reporting(E_ALL);
  session_start();
  include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
 
 $util = $DB->query("SELECT * FROM utilisateur");
 
  $req = $DB->query("SELECT b.*, u.pseudo, c.titre as titre_cat
    FROM blog b
    LEFT JOIN utilisateur u ON u.id = b.id_user
    LEFT JOIN categorie c ON c.id_categorie = b.id_categorie
    WHERE b.id_categorie = 4 
    AND b.date_creation <= DATE(NOW())
    ORDER BY b.date_creation DESC");
 
  $req = $req->fetchAll();
  
  
?>
 
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><base href="/"/><?phpinclude '../css.php'?><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><title>Blog — Fortnite — Didoub74</title><link rel="stylesheet" href="/css/bootstrap.min.css"/>
</head>
 
  <body><?phprequire_once('../menu.php');    
    ?>
  
    <div class="container"><div class="row">   
  
        <div class="col-sm-0 col-md-0 col-lg-0"></div><div class="col-sm-12 col-md-12 col-lg-12"><h1 style="text-align: center">Le blog de Fortnite</h1>
  
         
         <?phpif(isset($_SESSION['id'])){
           if($_SESSION['role'] >= 2){        
          ?><a href="creer_article" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Créer un article</a><a href="supprimer_article" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Supprimer un article</a><?php
              }}
            ?><?phpforeach($req as $r){ 
              ?>  
                <div style="margin-top: 20px; background: white; box-shadow: 0 5px 10px rgba(0, 0, 0, .09); padding: 5px 10px; border-radius: 10px"><a href="voir_article?id=<?= $r['id'] ?>" style="color: #666; text-decoration: none; font-size: 28px;"><?= $r['titre'] ?></a><div style="padding-top: 15px; color: #ccc; font-style: italic; text-align: right;font-size: 12px;">
                    Fait par  <?= $r['pseudo'] ?> le <?= date_format(date_create($r['date_creation']), 'D d M Y'); ?> dans le thème <?= $r['titre_cat'] ?></div></div>  
              <?php
              }
            ?>              
        </div></div></div>
 

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script><script src="/js/bootstrap.min.js"></script></body>
</html>


Je ne sais pas si je laisse le topic ouvert pour @Kam3leoN ou je le ferme et @Kam3leoN en ouvre un autre ?

@Clouder


Oui je ne l'utilise pas car je ne suis pas partie avec les class et tout dans le fichier de config et du coup quand j'essaie de mettre ces fonctions dans mon fichier ca beug.


Et puis bon je penses que si je le faisais faudrait que je reprennent sûrement toute mes fonctions une par une pour y apporter des modifications.

@Kam3leoN,


Si tu as un problème avec le array c'est peut-être parce que tu n'utilises pas les fonctions query et insert que j'ai fait à la connexion de la bdd ..



C'est à dire pour ton problème de pagination décroissant ?

@clouder,


Ah ok je savais pas en revanche j'ai tout de même une erreur sur le array.

Mais finalement je passe mon tour car à priori le WHERE avec ma pagination classé par ordre décroissant n'est pas compatible.

@Didoub74,


Dans ta requête SQL tu as mis 2 fois WHERE

Met ton 2ème WHERE en AND


" ...
  WHERE b.id_categorie = 4 
  WHERE b.date_creation >= DATE(NOW())
..."

@Kam3leoN,


Les jointures doivent toujours être après le FROM et le WHERE après le FROM ou les JOINTURES 😁


$req = $bdd->query("SELECT blog_posts.*, members_users.*, blog_categories.*
	FROM blog_posts
	LEFT JOIN members_users ON members_users.member_id = blog_posts.post_user_id
	LEFT JOIN blog_categories ON blog_categories.blog_category_id = blog_posts.post_category_id
	WHERE blog_posts.post_date >= date(NOW())
	ORDER BY blog_posts.post_date DESC
	LIMIT ?, ?"array($fromRecordNum, $recordsPerPage));
$posts = $req->fetchAll();

@clouder,


Ma date est en format date et non en datetime doit-je la mettre en datetime


Merci de vos réponse.

@Didoub74, @Clouder,


Je trouvais le sujet intéressant j'ai tenté de le mettre en place sur mon blog et j'ai la même erreur.

ma commande :


$req = $bdd->query("
	SELECT blog_posts.*, members_users.*, blog_categories.*
	FROM blog_posts
	WHERE blog_posts.post_date >= date(NOW())
	LEFT JOIN members_users ON members_users.member_id = blog_posts.post_user_id
	LEFT JOIN blog_categories ON blog_categories.blog_category_id = blog_posts.post_category_id
	ORDER BY blog_posts.post_date DESC
	LIMIT {$fromRecordNum}, {$recordsPerPage}
");
$posts = $req->fetchAll();


et j'obtiens l'erreur suivante :


Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'LEFT JOIN members_users ON members_users.member_id = blog_posts.post_user_id L' à la ligne 4 in C:\wamp64\www\siteweb\screenzone\blog\blog.php on line 26


Je précise que mon blog fonctionne très bien c'est juste en mettant l'option de publication différé qui bug :/

https://cdn.discordapp.com/attachments/652598755849142312/664820140285755392/unknown.png


et mon format de date est sur datetime voila si ca peut aider à debugguer ;)

@Didoub74,


Ta date_creation est au format date ou datetime

Cette pub permet au site de vivre ...
1
2