Requête UPDATE ajoute des entrées
Résolu
barale61
Messages postés
1326
Statut
Membre
-
barale61 Messages postés 1326 Statut Membre -
barale61 Messages postés 1326 Statut Membre -
Bonjour,
Ma requête ne doit pas être très bonne car au lieu de mettre à jour, elle ajoute une entrée. Je vous remercie de votre aide.
Ma requête ne doit pas être très bonne car au lieu de mettre à jour, elle ajoute une entrée. Je vous remercie de votre aide.
$reponse = $bdd->prepare('UPDATE sites SET nom = '.$nom.' , url = '.$url.' , dateCreation = '.$dateCreation.' , idTypeCms = '.$idTypeCms.' , dateMiseEnLigne = '.$dateMiseEnLigne.' , dateDerniereModif = '.$dateDernireModif.' WHERE sites.id='.$id.'');
A voir également:
- Requête UPDATE ajoute des entrées
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Nettoyage windows update - Guide
- Wsus offline update - Télécharger - Systèmes d'exploitation
2 réponses
Bonjour,
Prends l'habitude de sortir la requête de son exécution.
Penses aussi à l'encapsuler avec des doubles quotes.
Cordialement,
Jordane
Prends l'habitude de sortir la requête de son exécution.
Penses aussi à l'encapsuler avec des doubles quotes.
$sql = "UPDATE sites SET nom = '$nom'
, url = '$url'
, dateCreation = '$dateCreation'
, idTypeCms = '$idTypeCms'
, dateMiseEnLigne = '$dateMiseEnLigne'
, dateDerniereModif = '$dateDernireModif'
WHERE sites.id='$id' ";
$reponse = $bdd->prepare($sql);
Cordialement,
Jordane
Merci mais ça fonctionne toujours pas de cette façon:
<?php include('connexion.php'); ?>
<?php include('fonctions.php'); ?>
<title>Formulaire ajout site</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<?php
$nom = ( isset($_POST['nom']) )? $_POST['nom'] : '';
$url = ( isset($_POST['url']) )? $_POST['url'] : '';
$dateCreation = ( isset($_POST['dateCreation']) )? $_POST['dateCreation'] : '';
$idTypeCms = ( isset($_POST['idTypeCms']) )? $_POST['idTypeCms'] : '';
$dateMiseEnLigne = ( isset($_POST['dateMiseEnLigne']) )? $_POST['dateMiseEnLigne'] : '';
$dateDerniereModif = ( isset($_POST['dateDerniereModif']) )? $_POST['dateDerniereModif'] : '';
$nomCms = ( isset($_POST['idTypeCms']) )? $_POST['idTypeCms'] : '';
if (isset($_POST['envoyer'])) {
$req = $bdd->prepare('UPDATE sites SET nom = :nom, url = :url, dateCreation = :dateCreation, idTypeCms = :idTypeCms, dateMiseEnLigne = :dateMiseEnLigne, dateDerniereModif = :dateDerniereModif WHERE id = :nom');
$req->execute(array(
'nom' => $nom,
'url' => $url,
'dateCreation' => datefrus($dateCreation),
'idTypeCms' => $idTypeCms,
'dateMiseEnLigne' => datefrus($dateMiseEnLigne),
'dateDerniereModif' => datefrus($dateDerniereModif)
));
// On ferme la requête avant d'en faire une autre
$req->closeCursor();
//print_r ($req);
?>
<script langage="javascript">
document.location.href="index.php"
</script>
<?php
}
else { echo '';
}
?>
<div align="left" id="fiche">
<h3>Formulaire modifier un site </h3>
<div class="conteneur">
<form action="modification.php" method="post" enctype="multipart/form-data" name="ajoutSite" id="ajoutSite">
<p><label for "nom">Nom</label></p>
<p><input type="text" value="<?php echo $_GET['nom']; ?>" required name="nom" id="nom" /></p>
<p><label for "URL">URL</label></p>
<p><input type="url" value="<?php echo $_GET['url']; ?>" name="url" id="url" /></p>
<p><label for "dateCreation">Date de création</label></p>
<p><input value="<?php echo $_GET['dateCreation']; ?>" style="width:100px" pattern="\d{1,2}/\d{1,2}/\d{4}" type="date" name="dateCreation" id="dateCreation" /></p>
<p><label for "typeCms">Type de CMS</label></p>
<!--DEBUT SELECTION DU TYPE DE CMS-->
<?php
try
{
$reponse = $bdd->query('SELECT cms.nomCms
FROM cms');
?>
<select name="idTypeCms" id="idTypeCms">
<option selected="selected"><?php echo $_GET['nomCms']; ?></option>
<?php
while ($donnees = $reponse->fetch())
{
?>
<option value="<?php echo $donnees['nomCms']; ?>"><?php echo $donnees['nomCms']; ?></option>
<?php
}
?>
</select>
<?php
$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<!--FIN SELECTION DU TYPE DE CMS-->
<p><label for "dateMiseEnLigne">Date d'ajout</label></p>
<p><input value="<?php echo $_GET['dateMiseEnLigne']; ?>" style="width:100px" pattern="\d{1,2}/\d{1,2}/\d{4}" type="date" name="dateMiseEnLigne" id="dateMiseEnLigne" /></p>
<p><label for "dateDerniereModif">Date de modification</label></p>
<p><input value="<?php echo $_GET['dateDerniereModif']; ?>" style="width:100px" pattern="\d{1,2}/\d{1,2}/\d{4}" type="date" name="dateDerniereModif" id="dateDerniereModif" /></p>
<p> </p>
<p><input type="submit" name="envoyer" id="envoyer" value="Envoyer" /></p>
</form>
</div>
<a href="index.php">Liste des sites</a>
</div>coc
1 - Tu n'as pas tenu compte de ma remarque concernant la "séparation de la requête" avec son execution
2 - As tu testé ta requête en direct dans ta BDD ?
3 - Tes variables sont elles conformes à ce que tu attends ?
2 - As tu testé ta requête en direct dans ta BDD ?
3 - Tes variables sont elles conformes à ce que tu attends ?
$sql = " UPDATE sites
SET nom = :nom
, url = :url
, dateCreation = :dateCreation
, idTypeCms = :idTypeCms
, dateMiseEnLigne = :dateMiseEnLigne
, dateDerniereModif = :dateDerniereModif
WHERE id = :nom ";
$params = array( 'nom' => $nom,
'url' => $url,
'dateCreation' => datefrus($dateCreation),
'idTypeCms' => $idTypeCms,
'dateMiseEnLigne' => datefrus($dateMiseEnLigne),
'dateDerniereModif' => datefrus($dateDerniereModif)
);
// ----- Le temps des tests : ------------------//
echo "<br> La requête est : <br>".$sql;
echo "<br>Params : <br>";
print_r($params);
//-------------------------------------------------------//
$req = $bdd->prepare($sql);
$req->execute($params);