Problème d'envoi de valeur vers ma bdd
keb
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai un problème, je cherche à mettre à jour ma base de donnée à chaque nouvelle entrée. Lorsque j'envoi les valeurs dans ma base de données cette drenière ne se met pas à jour et garde les anciennes valeurs. Ma page se connecte parfaitement à ma base de donnée et les valeurs sont bien prise en compte (j'ai vérifier avec un var_dump()).
voici mon code:
<?php
require('connect.php');
if(!empty($_POST)){
if((isset($_POST[`sys`])) && (isset($_POST[`dia`])) && (isset($_POST[`pls`])) && (isset($_POST[`sat`])) && (isset($_POST[`temp`]))){
if((empty($_POST[`sys`])) && (empty($_POST[`dia`])) && (empty($_POST[`pls`])) && (empty($_POST[`sat`])) && (empty($_POST[`temp`]))){
//Enregistrement dans la base de donnée
$sys = $_POST[`sys`];
$dia = $_POST[`dia`];
$pls = $_POST[`pls`];
$sat = $_POST[`sat`];
$temp = $_POST[`temp`];
$sql = "UPDATE parametre SET sys = :sys, dia = :dia, pls = :pls, sat = :sat, temp = :temp";
$requete = $dbh ->prepare($sql);
$requete->bindValue(`sys`, $sys, PDO::PARAM_STR);
$requete->bindParam(`dia`, $dia, PDO::PARAM_STR);
$requete->bindParam(`pls`, $pls, PDO::PARAM_STR);
$requete->bindParam(`sat`, $sat, PDO::PARAM_STR);
$requete->bindParam(`temp`, $temp, PDO::PARAM_STR);
if(!$requete->execute()){
die ("Une erreur est survenue");
}else{
die ("valeur ajouter");
}
}else{
die("Erreur!");
}
}
}
?>
<!DOCTYPE html>
<html lang="fr" class="bg-black text-white">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="projet.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Formateur</title>
</head>
<body class="bg-black text-white">
<div>
<?php
if(isset($msgError)){
echo $msgError;
}elseif(isset($msgSuccess)){
echo $msgSuccess;
}
?>
</div>
<div class="container">
<br/>
<br/>
<br/>
<h3 colspan="2">Moniteur multiparametre vital</h3>
<br/>
<br/>
<form name="form" method="POST" action="formateur.php">
<div class="row ok">
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sys.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">SYS</h5>
<input type="number" placeholder="sys" id="sys" name="sys" min="0.1" max="25.9" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sys.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">DIA</h5>
<input type="number" placeholder="DIA" id="dia" name="dia" min="0.1" max="9.9" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-2 col-sm-2 col-md-2 col-lg-2 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/pls.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">pulse</h5>
<input type="number" placeholder="Pulse" id="pls" name="pls" min="0" max="200" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sat.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">SAT</h5>
<input type="number" placeholder="SAT (%)" id="sat" name="sat" min="0" max="100" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/temp.jpg" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Temp °C</h5>
<input type="number" placeholder="Temp °C" id="temp" name="temp" min="34" max="42" step="0.1" required>
</div>
</div>
</div>
<br/>
<br/>
<br/>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer">
</form>
</div>
</body>
</html>
voici mon code:
<?php
require('connect.php');
if(!empty($_POST)){
if((isset($_POST[`sys`])) && (isset($_POST[`dia`])) && (isset($_POST[`pls`])) && (isset($_POST[`sat`])) && (isset($_POST[`temp`]))){
if((empty($_POST[`sys`])) && (empty($_POST[`dia`])) && (empty($_POST[`pls`])) && (empty($_POST[`sat`])) && (empty($_POST[`temp`]))){
//Enregistrement dans la base de donnée
$sys = $_POST[`sys`];
$dia = $_POST[`dia`];
$pls = $_POST[`pls`];
$sat = $_POST[`sat`];
$temp = $_POST[`temp`];
$sql = "UPDATE parametre SET sys = :sys, dia = :dia, pls = :pls, sat = :sat, temp = :temp";
$requete = $dbh ->prepare($sql);
$requete->bindValue(`sys`, $sys, PDO::PARAM_STR);
$requete->bindParam(`dia`, $dia, PDO::PARAM_STR);
$requete->bindParam(`pls`, $pls, PDO::PARAM_STR);
$requete->bindParam(`sat`, $sat, PDO::PARAM_STR);
$requete->bindParam(`temp`, $temp, PDO::PARAM_STR);
if(!$requete->execute()){
die ("Une erreur est survenue");
}else{
die ("valeur ajouter");
}
}else{
die("Erreur!");
}
}
}
?>
<!DOCTYPE html>
<html lang="fr" class="bg-black text-white">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="projet.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Formateur</title>
</head>
<body class="bg-black text-white">
<div>
<?php
if(isset($msgError)){
echo $msgError;
}elseif(isset($msgSuccess)){
echo $msgSuccess;
}
?>
</div>
<div class="container">
<br/>
<br/>
<br/>
<h3 colspan="2">Moniteur multiparametre vital</h3>
<br/>
<br/>
<form name="form" method="POST" action="formateur.php">
<div class="row ok">
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sys.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">SYS</h5>
<input type="number" placeholder="sys" id="sys" name="sys" min="0.1" max="25.9" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sys.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">DIA</h5>
<input type="number" placeholder="DIA" id="dia" name="dia" min="0.1" max="9.9" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-2 col-sm-2 col-md-2 col-lg-2 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/pls.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">pulse</h5>
<input type="number" placeholder="Pulse" id="pls" name="pls" min="0" max="200" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/sat.jpg" alt="Card image cap">
<div class="card-body">
<br/>
<h5 class="card-title">SAT</h5>
<input type="number" placeholder="SAT (%)" id="sat" name="sat" min="0" max="100" step="0.1" required>
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
<div class="card col-xs-1 col-sm-1 col-md-1 col-lg-1 text-white bg-secondary" style="width: 10rem;">
<img class="card-img-top" src="./image/temp.jpg" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Temp °C</h5>
<input type="number" placeholder="Temp °C" id="temp" name="temp" min="34" max="42" step="0.1" required>
</div>
</div>
</div>
<br/>
<br/>
<br/>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer">
</form>
</div>
</body>
</html>
A voir également:
- Problème d'envoi de valeur vers ma bdd
- Votre envoi est en cours de transport vers son site de livraison - Forum Consommation & Internet
- Envoi impossible messenger - Forum Facebook Messenger
- Envoyer vers - Guide
- 'Votre colis est dans le site de livraison qui dessert votre adresse' que faire ✓ - Forum Consommation & Internet
- Envoie impossible messenger - Forum Facebook Messenger
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
Merci, quand tu postes du code, de suivre la méthode décrite ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu as choisi d'utiliser la commande UPDATE, qui devrait modifier tous les enregistrements existants de la table. Es-tu certain qu'elle ne fonctionne pas?
Merci, quand tu postes du code, de suivre la méthode décrite ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu as choisi d'utiliser la commande UPDATE, qui devrait modifier tous les enregistrements existants de la table. Es-tu certain qu'elle ne fonctionne pas?
keb
Je sais que la commande UPDATE marche mais ma base de donnée ne la prend pas compte, aucun changement n'est effectuer dans ma base de donnée.
keb
Ma commande est censé fonctionner mais ma base de donnée ne la prend pas en compte et ne ce modifie pas.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
>
keb
As-tu essayé de mettre le nom de paramètre correct dans
, avec le ?
Bonjour,
Tes conditions sur les paramètres POST ne sont pas correctes : tu vérifies si les paramètres existe avec isset, puis tu vérifies si les paramètres sont vides avec empty. Il faudrait plutôt vérifier que les paramètres ne sont pas vides pour exécuter la requête.
La fonction empty vérifie déjà l'existence de la variable en plus de vérifier si elle est vide, il n'est donc pas nécessaire d'utiliser isset + empty, l'utilisation de empty seule suffit :
Tes conditions sur les paramètres POST ne sont pas correctes : tu vérifies si les paramètres existe avec isset, puis tu vérifies si les paramètres sont vides avec empty. Il faudrait plutôt vérifier que les paramètres ne sont pas vides pour exécuter la requête.
La fonction empty vérifie déjà l'existence de la variable en plus de vérifier si elle est vide, il n'est donc pas nécessaire d'utiliser isset + empty, l'utilisation de empty seule suffit :
if (!empty($_POST) && !empty($_POST['sys']) && !empty($_POST['dia']) && !empty($_POST['pls']) && !empty($_POST['sat']) && !empty($_POST['temp'])) { //Enregistrement dans la base de donnée
Bonjour,
Tu l'as mis où ton var_dump ? Mets un
Et active l'affichage des erreurs PDO si ce n'est pas déjà fait. Procédure ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Dans ton code pour activer les erreurs il suffit d'ajouter cette ligne avant ton prepare :
Tu l'as mis où ton var_dump ? Mets un
die("oui");juste avant ton update pour voir si tu vas bien dans ta condition.
Et active l'affichage des erreurs PDO si ce n'est pas déjà fait. Procédure ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Dans ton code pour activer les erreurs il suffit d'ajouter cette ligne avant ton prepare :
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);