Insérer des caractères spéciaux base de données

Fermé
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - Modifié par david77179 le 25/01/2015 à 22:53
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - 11 févr. 2015 à 00:03
Bonjour,

Pouvez vous m'indiquer comment insérer un % dans une base de données. En effet lors de l'insert une erreur s'affiche...

Merci

David

Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net
A voir également:

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
25 janv. 2015 à 23:01
Quelle erreur et avec quel code ?
0
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 22
3 févr. 2015 à 23:51
Merci de ta réponse et désolé de ne pas avoir répondu plus tôt mais je pensais recevoir par mail et je n'ai rien reçu.. Pas grave.

Le navigateur m'affiche ERREUR SQL et me dis que mes variables ne sont pas déclarées... Alors que lorsqu'il n'y a pas de pourcentage tout passe niquel...

Merci à toi
0
Utilisateur anonyme > david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019
Modifié par ludobabs le 4/02/2015 à 08:11
Bonjour,

tu pourrais nous faire profiter du message d'erreur exact : ) et puis le code incriminé, la structure de la table concernée serait un plus aussi ...

cdt
0
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 22
Modifié par david77179 le 4/02/2015 à 15:29
Voici le message d'erreur affiché :



et voici le code :

<?php 
// ------ AJOUT D'UN UTILISATEUR --------
if(isset($_POST['nom'])){ // on vÈrifie la prÈsence des variables de formulaire (si le formulaire a ÈtÈ envoyÈ)
 if(($_POST['nom'] == "")){ // si mail ou mot de passe non spÈcifiÈs >> message d'erreur
 header("Location:newutilisateur.php?erreur=empty");
 }
  // on passe toutes les variables $POST en variables
  $nom = strtoupper ($_POST['nom']);
  $prenom = ucwords (strtolower($_POST['prenom']));

  $numsecu = $_POST['numsecu'];
  $mutuelle = $_POST['mutuelle'];
  $date_client = $_POST['date_client'];
  $date_envoi_pec = $_POST['date_envoi_pec'];
  $date_recep_pec = $_POST['date_recep_pec'];
  $accord_pec = $_POST['accord_pec'];
  $montant_pec = $_POST['montant_pec'];
  
  $date_rappel_1 = $_POST['date_rappel_1'];
  $coms_rappel_1 = addslashes ($_POST['coms_rappel_1']);
  $ok_rappel_1 = $_POST['ok_rappel_1'];
  
  $date_rappel_2 = $_POST['date_rappel_2'];
  $coms_rappel_2 = addslashes ($_POST['coms_rappel_2']);
  $ok_rappel_2 = $_POST['ok_rappel_2'];
  
  $date_rappel_3 = $_POST['date_rappel_3'];
  $coms_rappel_3 = addslashes ($_POST['coms_rappel_3']);
  $ok_rappel_3 = $_POST['ok_rappel_3'];
  
  $cloture = $_POST['cloture'];
  $date_signature = $_POST['date_signature'];
  
  // on fait l'INSERT dans la base de donnÈes
  $add_user = sprintf("UPDATE clients SET nom='$nom', prenom='$prenom', numsecu='$numsecu', mutuelle='$mutuelle', date_client='$date_client', 
  date_envoi_pec='$date_envoi_pec', date_recep_pec='$date_recep_pec', accord_pec='$accord_pec', montant_pec='$montant_pec', date_rappel_1='$date_rappel_1',
  coms_rappel_1='$coms_rappel_1',ok_rappel_1='$ok_rappel_1',date_rappel_2='$date_rappel_2', coms_rappel_2='$coms_rappel_2',ok_rappel_2='$ok_rappel_2', 
  date_rappel_3='$date_rappel_3', coms_rappel_3='$coms_rappel_3' ,ok_rappel_3='$ok_rappel_3',cloture='$cloture', date_signature='$date_signature' 
  WHERE name='$nom' AND prename='$prenom'");
  mysqli_query ($connection, $add_user) or die ('Erreur SQL !<br>'.$add_user.'<br />'.mysqli_connect_error());

  header("Location:../index.php?modifs=ok"); // redirection si crÈation rÈussie
 }
?>


En sachant que ces erreurs ne s'affichent jamais lorsque je ne mets pas de ' % '

Merci pour votre aide :)
Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net
0
Utilisateur anonyme
4 févr. 2015 à 16:34
salut,

il faut que tu nous donnes la structure de la table. Il faudrait aussi que tu nous expliques ce que tu entends par "mettre des %" : )

cdt
0
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 22
4 févr. 2015 à 16:39
Voici la structure de la table :



Dans une champ text par exemple coms_rappel_1 je voudrais que l'utilisateur puisse ecrire par exemple : "le client a laissé un acompte de 10%"

Merci
0
L'interclassement de ta base de donnée doit poser un problème, Tu devrais la passer en utf8_general_ci tu pourras avoir les accents en plus : )

En modifiant le .htacces

php_flag default_charset utf-8
ou au debut de tes pages php

<head><meta charset="utf-8" /></head>

et ensuite juste apres ta connexion à la bdd une requête du genre

mysql_connect ('localhost', 'root', '');
mysql_set_charset ('UTF8');

si php < version 5

query("SET NAMES 'utf8'");

L'exemple de saisie que tu nous indiques

le client a laissé un acompte de 10%

comporte un accent qui n'est pas supporté par l'interclassement de ta base ( latin1 swedish ci )


Je te laisse un petit peu de lecture

http://openclassrooms.com/courses/passer-du-latin1-a-l-unicode

en espérant que cela puisse t'aider, ce n'est qu'une piste, les experts vont me corriger si necessaire : )

cdt
0
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 22
11 févr. 2015 à 00:03
Merci pour ta réponse. Tout cela est déjà fait à l'exception de l'interclassement de la BDD car une fois faite je ne peux plus la modifier..
Les accents passent bien mais toujours rien sur le %..
0