Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
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
Tenez le code de ConnexionDB.php
:
<?php
// Déclaration d'une nouvelle classe
class connexionDB {
private $host = '127.0.0.1'; // nom de l'host
private $name = 'didoykkq_didoub74'; // nom de la base de donnée
private $user = 'didoykkq_didoub74'; // utilisateur
private $pass = 'didoub@74'; // mot de passe
//private $pass = ''; // Ne rien mettre si on est sous windows
private $connexion;
function __construct($host = null, $name = null, $user = null, $pass = null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
$this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la BDD !';
die();
}
}
public function query($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req;
}
public function insert($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
public function delete($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
public function update($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
}
// Faire une connexion à votre fonction
$DB = new connexionDB();
?>
J'ai ce code :
$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
WHERE b.date_creation >= DATE(NOW())
ORDER BY b.date_creation DESC");
$req = $req->fetchAll();
et il me fait cette erreur :
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE b.date_creation >= DATE(NOW()) ORDER BY b.date_creation DESC' at line 6 in /home/didoykkq/public_html/bd/connexionDB.php on line 30
adresse test : https://didoub74.yo.fr/fortnite/missions
Alors, une fois que tu as positionné la date d'apparition de ton article lorsque tu es sur ton formulaire pour la création de ton article, dans la requête qui te permet d'afficher tes articles tu devras ajouter que tu afficheras uniquement les articles dont la date d'apparition est supérieure ou égale à la date du jour.
Comme ceci :
<?php
$req = "SELECT *
FROM article
WHERE date_article >= DATE(NOW())";
...
Non imaginons on est le 11 mars, je programme l'envoie pour le 12 mars, je voudrais que l'article de blog apparaissent le 12 mars à minuit et pas avent.
J'espère que c'est claire
Salut @Didoub74,
Si je comprends bien, tu souhaiterais mettre en place un système qui affichera automatiquement ton article avec un envoi de mail pour prévenir tes utilisateurs ?