Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'essaye de faire un enregistrement dans une table des données d'un formulaire en récupérant l'ID du dernier enregistrement opéré

<?php
session_start();
error_reporting(0);
include('includes/config.php'); // inclusion du fichier de connexion à la base de données fait avec PDO
if(strlen($_SESSION['alogin'])==0)
{
    header('location:index.php');
}
else{

    if(isset($_POST['create']))
    {
        $category=$_POST['category'];
        $status=$_POST['status'];
        $sql="INSERT INTO  tblcategory(CategoryName,Status) VALUES(:category,:status)";

        $query = $dbh->prepare($sql);
        $query->bindParam(':category',$category,PDO::PARAM_STR);
        $query->bindParam(':status',$status,PDO::PARAM_STR);
        $query->execute();
        $lastInsertId = $dbh->lastInsertId();
        if($lastInsertId)
        {
            $_SESSION['msg']="Catégorie listée avec succès";
            header('location:manage-categories.php');
        }
        else
        {
            $_SESSION['error']="Une erreur s'est produite. SVP réessayez";
            header('location:manage-categories.php');
        }

    }
    else{
        echo "don man";
    }
    ?>
<?php include_once 'includes/header.php';?><br><br><br><br><br><br>

<div class="content-wra
    <div class="content-wrapper">
<div class="container">
    <div class="row pad-botm">
        <div class="col-md-12">
            <h4 class="rad-txt"><br><br><br>
                <span class="abtxt1">Ajouter une catégorie</span>
            </h4>

        </div>

    </div>
    <div class="row">
        <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3"">
        <div class="panel panel-info">
            <div class="panel-heading">
                Informations sur les catégories
            </div>
            <div class="panel-body">
                <form role="form" method="post">
                    <div class="form-group">
                        <label>Nom de Catégorie</label>
                        <input class="form-control" type="text" name="category" autocomplete="off" required />
                    </div>
                    <div class="form-group">
                        <label>Statut</label>
                        <div class="radio">
                            <label>
                                <input type="radio" name="status" id="status" value="1" checked="checked">Activé
                            </label>
                        </div>
                        <div class="radio">
                            <label>
                                <input type="radio" name="status" id="status" value="0">Inactivé
                            </label>
                        </div>

                    </div>
                    <button type="submit" name="create" class="btn btn-info">Créer </button>

                </form>
            </div>
        </div>
    </div>

</div>

</div>
</div>

<?php include('includes/footer.php');?>
<?php } ?>

Ce que je veux

Je voudrais comme je l'ai souligné enregistrer des données "category" et "status" du formulaire en récupérant l'ID du dernier enregistrement

Ce que j'obtiens

$lastInsertId = $dbh->lastInsertId(); renvoie toujours "0" et donc ma requête ne marche pas et renvoie toujours l'erreur que j'ai géré dans mon code. SVP besoin d'aide...

6 réponses


Salut,
Quel est le format de ta table ?

@plus
Pierre

As-tu d'autres champs dans la table
ont-ils NULL autorisé ?

Oui j'ai d'autres champs dans ma table

A pierrot01

Je ne cerne pas votre question...

La structure si tu préfère ;)
@plus
Pierre

Cette table dispose d'un id autoincrement , d'un nom de catégorie (CategoryName), d'un statut (Status), d'une date de création (CreationDate) et d'une date de mise à jour(UpdationDate)