8721 sujets

Développement web côté serveur, CMS

Salut à tous,

J'ai une erreur sur un Update, et je dois plus avoir les yeux en face des trous, je n'arrive pas a voir d'où vient l'erreur.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE doc_id = '5'' at line 6'

voici la requête :
$req = $bd->prepare("UPDATE documents
	SET 	doc_type = :doc_type, 
		doc_date = :doc_date,
		doc_client = :doc_client, 
		doc_terrain = :doc_terrain,  
	WHERE doc_id = :id_doc_modif");
$req->bindValue('doc_id', $id_doc_modif, PDO: [langue]ARAM_INT);
$req->execute(array(
	'doc_type' => $doc_type,
	'doc_date' => $doc_date,
	'doc_client' => $id_client,
	'doc_terrain' => $id_terrain,
	'id_doc_modif' => $id_doc_modif,
));


Je vous remercie vivement d'avance pour votre aide.

Cdlt.
Bonjour,

Merci, c'est bien la virgule qui était en trop.

Un copié collé suivit d'une modification des champs et hop la virgule qui reste et qui met le bazard. lol

Merci beaucoup.
Bonjour,

Dans cette requête, j'enregistre une date.
Dans ma base de données, voici les infos de la colonne 'doc_date' :
Nom : doc_date
Type : Date
Taille/Valeurs* : -
Défaut : Aucune
Interclassement : -
Attributs : -
Null : -
A_I : -
Commentaires : -

Lorsque je veux afficher cette date, j'utilise le code suivant :
$ladate = new DateTime($result['doc_date']); 
echo $ladate->format("d/m/Y");
Cela me permet de l'afficher sous le format français.

Sur IE, mon formulaire affiche la date à l'envers, alors que sous google chrome, la date s'affiche bien au format français.
Si je met une date au format français sous IE, je me retrouve avec une date du style 00-00-0000 en base de donnée. Et à l'affichage, avec 30/11/-0001. Smiley decu

Je n'arrive pas à faire afficher ma date dans le formulaire lorsque je récupère celle-ci de ma base de donnée.
J'ai essayé ça, mais ça ne fonctionne pas Smiley decu :
$selection = $bd->query("SELECT * FROM documents WHERE doc_id ='". $id_doc_modif ."'");
 $resultat = $selection->fetch();
 //on stock tout dans des variables
  $id_client = $resultat['doc_client'];
  $id_terrain = $resultat['doc_terrain'];
  //$doc_date = $resultat['doc_date']; // affiche la date à l'envers sous IE, et à l'endroit sur chrome.
  $doc_date = new DateTime($resultat['doc_date']); $doc_date->format("d/m/Y"); // n'affiche plus la date, ni sous IE, ni sous chrome.
  $doc_type = $resultat['doc_type'];


Puis-je arriver à faire afficher ma date au format français partout ?
A la limite, même en bdd. Smiley smile
Il faudrait aussi que je puisse saisir la date au format français sous IE.

Par avance, je vous remercie vivement de votre aide.

Ps : A toute fin utile, voici le formulaire :
<form id="formulaire" class="formulaire" action="admin_modif_documents.php" method="post" enctype="multipart/form-data">
 <input type="hidden" name="id_doc_modif" value="<?php if (!empty($id_doc_modif)) echo $id_doc_modif; ?>">
 <input type="hidden" name="id_client" value="<?php if(!empty($id_client)) echo $id_client; ?>">
 <input type="hidden" name="id_terrain" value="<?php if(!empty($id_terrain)) echo $id_terrain; ?>">
 <p>Client :</td><td><?php echo $denomination_clt; ?><br/>
 <p>Terrain :</td><td><?php echo $denomination_terr; ?><br/>
 <label for="type">Type de document* :</label>
  <select id="type" name="type" value="<?php if(!empty($_POST['type']))  { echo htmlspecialchars($_POST['type']); } elseif(!empty($doc_type)) { echo htmlspecialchars($doc_type); } ?>" required>
   <option <?php if(empty($_POST['type']) && empty($doc_type)) { echo 'selected'; } ?>>Sélectionner un type</option>
   <option <?php if(!empty($_POST['type']) && $_POST['type'] == "Devis")  { echo 'selected'; } elseif(!empty($doc_type) && $doc_type == "Devis") { echo 'selected'; } ?>>Devis</option>
   <option <?php if(!empty($_POST['type']) && $_POST['type'] == "Fiches de visite")  { echo 'selected'; } elseif(!empty($doc_type) && $doc_type == "Fiches de visite") { echo 'selected'; } ?>>Fiches de visite</option>
   <option <?php if(!empty($_POST['type']) && $_POST['type'] == "Fiches d'intervention")  { echo 'selected'; } elseif(!empty($doc_type) && $doc_type == "Fiches d'intervention") { echo 'selected'; } ?>>Fiches d'intervention</option>
  </select>
  <?php if (!empty($erreur3)) { echo '<label for="type" class="error">' . $erreur3 . '</label>'; } ?>
 <br/>	
 <label for="date">Date* :</label></label>
  <input id="date" type="date" name="date" value="<?php if(!empty($_POST['date']))  { echo htmlspecialchars($_POST['date']); } elseif(!empty($doc_date)) { echo htmlspecialchars($doc_date); }  ?>" required/>
  <?php if (!empty($erreur2)) { echo '<label for="date" class="error">' . $erreur2 . '</label>'; } ?>
 <input type="submit" name="Valider" value="Valider" title="Cliquez ici pour valider"/>
</form>

Modifié par Alexbass (03 Feb 2015 - 21:53)