Identification article

Ce topic a été résolu
ets_raphael

ets_raphael Le 14 juin 2017 à 20:03 (Édité le 25 janvier 2019 à 17:53)

Bonjour tout le monde, c'est mon premier message dans ce forum et j'espère de tout coeur que je vais trouver ma solution 😀 

Alors moi mon problème est que je voudrais que dans ma base de donnée lorsqu'un article est posté, celui-ci contient aussi l'id de l'utilisateur, et oui c'est tout et j'arrive pas du tout a comprendre pourquoi mon code ne marche pas :3 

Mon code est une partie du tuto sur l'espace membre, et dans mon espace membre j'ai mis la fonction pour poster un article. Je vous envoie la partie que j'ai à modifier pour que ca marche : 

session_start();

Alors moi ce que je voulais faire c'était de juste modifié la ligne 15 de la manière suivante : 
$ins = $bdd->prepare('INSERT INTO articles (titre, contenu, date_time_publication, id_utilisateur) VALUES (?, ?, NOW(), '$getid' )');
Mais rien n'y fais, pas moyen de pouvoir enregistrer mon article. Je précise que j'ai mis une case en plus nommé id_utilisateur dans ma base de donner a la différence de la video de PrimFx. 

Merci pour les personnes qui m'aideront 😀 
ets_raphael

ets_raphael Le 14 juin 2017 à 20:23

session_start();
J'ai reposté le code a modifier une deuxième fois car il est impossible pour moi de modifié mon code d'en haut.. Désolé pour la gêne je trouve même que c'est assez bizarre :/ 
ets_raphael

ets_raphael Le 14 juin 2017 à 20:31 (Édité le 14 juin 2017 à 20:36)

Je donne quand même la version écrite car la bouton éditer est inaccessible en ce moment, désolé pour l'affichage : 

session_start();$bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', 'root');

if(isset($_GET['id']) AND $_GET['id'] > 0 ){
  $getid=intval($_GET['id']); 
  $requser=$bdd->prepare('SELECT * FROM membres WHERE id=?'); 
  $requser->execute(array($getid)); 
  $userinfo=$requser->fetch(); 
  if(isset($_POST['article_titre'], $_POST['article_contenu'])) {   
  if(!empty($_POST['article_titre']) AND !empty($_POST['article_contenu'])) {     
  $article_titre = htmlspecialchars($_POST['article_titre']);     
  $article_contenu = htmlspecialchars($_POST['article_contenu']);      if($mode_edition == 0) {        $ins = $bdd->prepare('INSERT INTO articles (titre, contenu, date_time_publication, id_utilisateur) VALUES (?, ?, NOW(), '$getid' )');        $ins->execute(array($article_titre, $article_contenu));        $lastid = $bdd->lastInsertId();        if(isset($_FILES['miniature']) AND !empty($_FILES['miniature']['name'])) {          if(exif_imagetype($_FILES['miniature']['tmp_name']) == 2) {            $chemin = 'miniatures/'.$lastid.'.jpg';            move_uploaded_file($_FILES['miniature']['tmp_name'], $chemin);          } else {            $message = 'Votre image doit être au format jpg';          }        }        $message = 'Votre article a bien été posté';      } else {        $update = $bdd->prepare('UPDATE articles SET titre = ?, contenu = ?, date_time_edition = NOW() WHERE id = ?');        $update->execute(array($article_titre, $article_contenu, $edit_id));        //header('Location: '.$edit_id);        $message = 'Votre article a bien été mis à jour !';      }    } else {      $message = 'Veuillez remplir tous les champs';    }  }
ThomasT

ThomasT Le 16 juin 2017 à 11:14

$ins = $bdd->prepare('INSERT INTO articles (titre, contenu, date_time_publication, id_utilisateur) VALUES (?, ?, NOW(), '$getid' )');
Une grosse erreur ici 😉
dans VALUES tu as mis
'$getid'
je te rappel qu'en php il faut mettre des points pour ajouter une variable à une autre comme ceci :
'.$getid.'
Ce qui donne :
$ins = $bdd->prepare('INSERT INTO articles (titre, contenu, date_time_publication, id_utilisateur) VALUES (?, ?, NOW(), '.$getid.' )');
Et n'oublie pas que c'est mieux de mettre des ? et de mettre le $getid dans le execute 😉

j'espère t'avoir aidé 😀
j'ai pas regardé tout ton code mais déjà ça devrait t'aider 😉
ets_raphael

ets_raphael Le 17 juin 2017 à 01:22

Dire que j'ai passé plus de 2h a chercher mon erreur.. Un énorme merci a toi c'est très gentil ! Ca marche 😀 
ThomasT

ThomasT Le 19 juin 2017 à 20:56

Ravis d'avoir aidé 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte