Tom's Guide > Forum > Programmation > [RESOLU] résultat fonction trim php correct, resultat sql incorrect

[RESOLU] résultat fonction trim php correct, resultat sql incorrect

Forum Programmation : [RESOLU] résultat fonction trim php correct, resultat sql incorrect

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

je compte lors d'insertion dans la base de données supprimer tous les espaces avant et en fin de chaine et les espaces en trop qui sont en plein milieu de chaine... La fonction trim est l'ideal puisqu'elle fait tous ça...
Je l'ai utilisé j'ai fais un affichage pour etre sur que ma variable ne contienne plus d'espace "inutile", la variable est OK... c'est parfait!!

Je fais ma requete... pareil je fais un affichage les espaces inutiles ne sont plus la!! La requete se déroule parfaitement, pas d'erreur mais lorsque je consulte les résultats je retrouve ces espaces comme par magie ou plutot les espaces en milieu de chaine de caractères... Ceux du début et de fin ne sont plus la
Y a un truc ?? :-?
J'ai meme appliqué la function trim directement dans ma requete SQL

PS: dans mon INSERT la variable c'est la bonne c'est sur!!!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Tu devrais nous dire d'où viennent les données que tu insert.
En effet, s'il s'agit d'une chaine arrivant d'un textarea, tu as des retours à la ligne (qui sont des espaces blancs).

Répondre à crazycat@idn

effectivement y a un TEXTAREA mais y a aussi un champ input classique et dans les deux cas cela fais la meme chose!


Je rappelle que lorsque je fais un echo de mon $_POST, y a plus d'espaces, c'est vraiment ce que je veux, mais ensuite avec cette meme variable je fais mon Insert into.... mais il enregistre dans la base en remettant ces espaces, c'est à n'y rien comprendre

Répondre à imer@IDN

Bonjour, n'y a-t-il pas un problème de redondance de chaîne ?
Comment se présente ton code ?

$chaine = $_POST['chaine'];
echo $chaine;
$chaine2 = trim($chaine);
echo $chaine2;

normalement ça marche, sinon ne reste plus qu'à tuer les retours chariot

Répondre à anaphylactique

Code :
  1. if($_POST['zone_commentaire']!="" )
  2. {
  3. $commentaire =trim($_POST['zone_commentaire']);
  4. echo "<br>COMMENTAIRE=".$commentaire."<br>";
  5. }



Le resultat du echo commentaire m'affiche 'aaaaaaa aaaaaaaaa'

Je lance ma requete, à l'affichage cela donne:

Insert into TABLE (commentaires) Values (trim('aaaaaaa aaaaaaaaa'));

Sur le insert c'est l'affichage de ma variable et tu peux voir que j'ai remis le TRIM dans la requete et que dans la parenthese il n'a pas d'espace... Si j'enleve le TRIM dans la requete le résultat est le meme...

Dans mon formulaire j'avais blindé d'espace entre les deux groupes de "aaa..."!
ET ces ESPACES je les retrouve dans ma base, sauf ceux de devant.

PS je n'ai pas de retour chariot, et re-PS: la c'est sur une TEXTAREA mais c'est pareil sur une INPUT

Répondre à imer@IDN

trim -- Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

il suffit de regarder la documentation ...

L'affichage html supprime les espaces inutiles si on ne place pas le texte entre les balises <pre> et </pre>.

Répondre à chrisz

vois pas le rapport.... :-?


J'ai eu un doute, et j'ai testé...
L'affichage dans l'interface de la base (dans mon cas PHPpgAdmin du style phpMyAdmin) m'affiche donc les espaces en trop entre les mots, idem lorsque je fais un select * sur l'enregistrement via cette interface, mais en faisant un select * via PHP et l'affichage dans le navigateur, les espaces ne sont plus la....

Est ce que cela va m'etre génant j'en sais rien, il y a une mauvaise interprétation entre les deux en tout cas

Répondre à imer@IDN

$commentaire = strtr(trim($chaine),"%20","" );


une idée comme ça en passant, mais je ne garantis rien je ne suis qu'à moitié réveillé...

Répondre à anaphylactique

j'ai essayé j'ai exactement le meme problème

Répondre à imer@IDN

Le rapport c'est que la fonction trim ne supprime pas les espaces double entre les mots. Seulement les espaces en début et fin de chaîne.
Donc tes espaces sont dans ta base de données.
C'est l'affichage html qui te laisse penser que tes espaces ne sont plus là.
Si tu affiches le code source de la page dans ton navigateur, tu verras que tes espaces sont là ...

Répondre à chrisz

ah oui exact désolé...

Je me suis fait avoir par l'html qui m'a fais croire que la fonction Trim enlevait aussi les espaces en trop en mileu de chaine...

Qu'est ce que je pourrais utiliser comme fonction php pour enlever le surplus d'espaces

Répondre à imer@IDN

Code :
  1. function onespace($mystring) {
  2.   $mystring = preg_replace('@ +@', ' ', $mystring);
  3.   return $mystring;
  4. }

Répondre à crazycat@idn

Impeccable merci beaucoup

Répondre à imer@IDN
Tom's Guide > Forum > Programmation > [RESOLU] résultat fonction trim php correct, resultat sql incorrect
Aller à :

Il y a 1743 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens