Carouge10,
il y a 9 ans
Petite correction pour mon test.
Placer le résultat de l'execute dans une variable et tester celle-ci
Elodie Dasilva,
il y a 9 ans
J'avais effectivement effectuer les 2 déjà avec et sans le "NULL", et sans le "NULL", la requête ne fonctionne pas non plus.
$req = $odb->prepare("INSERT INTO lesappels (data, nom, prenom, numero, type, objet, operateur, resume) VALUES (:data, :nom, :prenom, :numero, :type, :objet, :operateur, :resume)");
Cordialement.
Carouge10,
il y a 9 ans
Essayer ceci après avoir exécuter la requête.
if (!$req) {
echo "\nPDO::errorInfo():\n";
print_r($odb->errorInfo());
}
else {
echo "ok";
}
die();
Elodie Dasilva,
il y a 9 ans
Cela m'affiche l'echo de la confirmation d’exécution de la requête ainsi que le mot "ok" du echo à la fin.
Carouge10,
il y a 9 ans
Et rien n'est inséré dans la bdd ? Même pas une ligne vide ?
Elodie Dasilva,
il y a 9 ans
Malheureusement, négatif..
Carouge10,
il y a 9 ans
Bonjour,
A quoi correspond NULL dans la requête car il y 8 champs pour 9 valeurs ?
Elodie Dasilva,
il y a 9 ans
Bonjour,
La valeur "NULL" correspond à ID dans ma base de données.
Cordialement.
Carouge10,
il y a 9 ans
Faudrait le signaler lors de la requête alors.
ID est en auto-incremente ?
Elodie Dasilva,
il y a 9 ans
Oui il y est.
Cordialement.
Carouge10,
il y a 9 ans
Donc dans ce cas, on le laisse la BDD gérer les id lors de l'insert.
Enlever NULL et la requête devrait fonctionner.
Elodie Dasilva,
il y a 9 ans
Voici les champs de ma base de données, si ça peut servir.

Cordialement.
Elodie Dasilva,
il y a 9 ans
"Petite correction pour mon test.
Placer le résultat de l'execute dans une variable et tester celle-ci"
Qu'entendez-vous par là ?
Cordialement.
Carouge10,
il y a 9 ans
$res = $req->execute(array(
':data' => $data,
':nom' => $nom,
':prenom' => $prenom,
':numero' => $numero,
':type' => $type,
':objet' => $objet,
':operateur' => $operateur,
':resume' => $resume));
if (!$res) {
echo "\nPDO::errorInfo():\n";
print_r($odb->errorInfo());
}
else {
echo "ok";
}
die();
Elodie Dasilva,
il y a 9 ans
Cela me retourne "PDO::errorInfo(): Array ( [0] => 00000 [1] => [2] => )"
Carouge10,
il y a 9 ans
Donc la requête est bonne mais l'exécution produit une erreur.
Les champs sont complétés ? ou à défaut, autoriser à être null ?
Elodie Dasilva,
il y a 9 ans
En effet tout est correct, je ne vois vraiment pas d'où vient l'erreur..
Elodie Dasilva,
il y a 9 ans
Quelqu'un aurait la solution ? :S
Je patauge depuis hier a vérifier mes variables 1 par 1 et je ne vois aucune erreur..
Carouge10,
il y a 9 ans
Il se pourrait qu'il y ai un conflit avec des noms de champs réservés à SQL.
Esssayer de renommer vos champs en les préfixant dans ce style "ap_data, ap_type....."
Elodie Dasilva,
il y a 9 ans
Comme ceci ?
$req = $odb->prepare("INSERT INTO lesappels (ap_data, ap_nom, ap_prenom, ap_numero, ap_type, ap_objet, ap_operateur, ap_resume) VALUES (:ap_data, :ap_nom, :ap_prenom, :ap_numero, :ap_type, :ap_objet, :ap_operateur, :ap_resume)");
$req->execute(array(
':ap_data' => $data,
':ap_nom' => $nom,
':ap_prenom' => $prenom,
':ap_numero' => $numero,
':ap_type' => $type,
':ap_objet' => $objet,
':ap_operateur' => $operateur,
':ap_resume' => $resume
));

Carouge10,
il y a 9 ans
Elodie Dasilva,
il y a 9 ans
Alors non, toujours aucun enregistrement dans la base de données :/.
Voici le code du <form>.
<form action="" method="POST" id="ajouterappel">
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<?php
$req_name = $_SESSION["username"];
$reponse = $odb->query("SELECT * FROM users WHERE pseudo = '$req_name'");
while ($donnees = $reponse->fetch())
{
$id = $donnees['ID'];
?>
<input type="text" class="form-control has-feedback-left" id="inputSuccess4" name="operateur" value="<?php if($donnees['ID'] == 1) echo 'L. Jeremy';
else if($donnees['ID'] == 2) echo 'A. Dominic';?>" disabled/>
<?php
}
?>
<span class="fa fa-support form-control-feedback left" aria-hidden="true"></span>
</div>
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<input type="text" class="form-control has-feedback" id="inputSuccess2" name="data" value="<?php echo $date; ?> <?php echo $heure; ?>" disabled/>
<span class="fa fa-calendar form-control-feedback right" aria-hidden="true"></span>
</div>
<div class="col-md-12 col-sm-12 col-xs-12 form-group has-feedback">
<select class="form-control" name="type">
<option>------ Sélectionner le type d'appel ------</option>
<option value="1">Réception d'un appel</option>
<option value="2">Émission d'un appel</option>
</select>
</div>
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<input type="text" class="form-control has-feedback-left" id="inputSuccess2" name="nom" placeholder="Nom de la personne" value="">
<span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
</div>
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<input type="text" class="form-control" id="inputSuccess3" name="prenom" placeholder="Prénom de la personne" value="">
<span class="fa fa-user form-control-feedback right" aria-hidden="true"></span>
</div>
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<input type="text" class="form-control has-feedback-left" id="inputSuccess4" name="numero" placeholder="Numéro de téléphone" value="">
<span class="fa fa-phone form-control-feedback left" aria-hidden="true"></span>
</div>
<div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
<input type="text" class="form-control" id="inputSuccess5" name="objet" placeholder="Objet de l'appel" value="">
<span class="fa fa-question form-control-feedback right" aria-hidden="true"></span>
</div>
<div class="col-md-12 col-sm-12 col-xs-12 form-group has-feedback">
<textarea class="form-control" rows="12" cols="50" name="resume" placeholder="Resumé de l'appel" value=""><?php echo ucfirst($note); ?></textarea>
</div>
<div class="ln_solid"></div>
<center><button type="submit" name="ajouterappel" class="btn btn-success"><font color="black"><i class="fa fa-check"></i> Ajouter cet appel</font></button></center>
</form>
J'ai également testé en mettant ma class readonly="readonly" au lieu de disabled/> mais rien ne change.
Elodie Dasilva,
il y a 9 ans
J'ai changé l'aspect et la mise en forme de ma requête.
Celle-ci est désormais fonctionnelle.
Voici mon code pour ceux qui chercherait après moi.
<?php
if(isset($_POST['ajouterappel'])){
$data = $_POST['data'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$numero = $_POST['numero'];
$type = $_POST['type'];
$objet = $_POST['objet'];
$operateur = $_POST['operateur'];
$resume = $_POST['resume'];
$insertAppel = $odb -> prepare("INSERT INTO `lesappels` VALUES(NULL, :data, :nom, :prenom, :numero, :type, :objet, :operateur, :resume)");
$insertAppel -> execute(array(':data' => $data, ':nom' => $nom, ':prenom' => $prenom, ':numero' => $numero, ':type' => $type, ':objet' => $objet, ':operateur' => $operateur, ':resume' => $resume));
echo '<div class="alert alert-success" style="margin-top: 25px;"><b>L\'appel à été ajouté avec succès - <a href="historique-appel.php?numero='.$numero.'"><font color="white"><u>Accéder à l\'historique du '.$numero.'</u></font></a></b></div>';
}
Merci tout de même à "Carouge10" qui a voulu m'aider.
Cordialement.