[RESOLU] résultat fonction trim php correct, resultat sql incorrect
Forum Programmation : [RESOLU] résultat fonction trim php correct, resultat sql incorrect
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!!!
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).
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
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
Code :
|
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
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>.
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
$commentaire = strtr(trim($chaine),"%20","" );
une idée comme ça en passant, mais je ne garantis rien je ne suis qu'à moitié réveillé...
j'ai essayé j'ai exactement le meme problème
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à ...
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
Code :
|
Impeccable merci beaucoup
Il y a 1743 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
