substr() me fait des trucs bizarre

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 18:54

J'essaie de supprimer les 12 premières lettres d'un champ, j'ai donc tenté :

mysql_query("UPDATE `tsqq` SET `tsqq`= SUBSTR('tsqq', 12)");

Mais au lieu de me supprimer le 12 premières lettres de chaque entrée, ça me supprime toutes les entrées à la place.

Quelqu'un verrait pourquoi ?

Merci !


antinomx
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 277
Inscription: 23 Aoû 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 19:02

Salut,

Comme tu peux le voir dans la doc, il faut définir le caractère de départ et celui de fin donc ça ferait plutôt substr('tsqq', 0, 12).

A+!

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 19:30

J'avais compris que ça marchait quand même si on en mettait qu'un.

Mais bon peu importe : mysql_query("UPDATE `tsqq` SET `tsqq`= SUBSTR('tsqq', 12, -9 )");
Ca m'efface tout quand même...


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: 3 Mai 2004

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 19:36

antinomx a écrit:Comme tu peux le voir dans la doc, il faut définir le caractère de départ et celui de fin donc ça ferait plutôt substr('tsqq', 0, 12).
Faut pas confondre substr (PHP) et SUBSTR (MySQL). :wink:

Jean-Luc


antinomx
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 277
Inscription: 23 Aoû 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 19:47

Ah mince !

Désolé !

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 21:54

J'ai également essayé avec

("UPDATE `tsqq` SET `tsqq`= SUBSTRING('tsqq', 12, -9 )")
("UPDATE `tsqq` SET `tsqq`= MID('tsqq', 12, -9 )")

J'ai même essayé en mettant 1, -1 juste pour voir, mais dans tout les cas ça m'efface tout.
C'est super chiant, parce qu'en plus pour pouvoir avancer et faire d'autres truc j'ai spécialement besoin de résoudre ce problème précis... ^^

Donc un très grand merci à celui qui me résoudra ça !

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 22:12

Ah du progrès.
Quand je fait ça :
mysql_query("UPDATE `tsqq` SET `tsqq`=SUBSTR('tsqq', 3) WHERE id='24099'");

Ca me donne << qq >>.
Donc en fait ça ne prend pas la valeur du champs mais litteralement << tsqq >>.
Or je ne voit pas comment faire autrement qu'avec les simples guillemets autour du champ 'tsqq' pour que sql comprennent qu'il s'agit d'un champs et pas de texte.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 22:14

Code: Tout sélectionner
mysql_query("UPDATE tsqq SET tsqq=SUBSTR(tsqq, 3) WHERE id=24099");
?

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 22:24

Non ça change rien, à par au niveau du SUBSTR(tsqq, 3) ou la ça me donne un résultat vide.
Et si je remet SUBSTR('tsqq', 3) ça me redonne qq.

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mar Mar 24, 2009 23:44

Ouais c'est bon fallait mettre SUBSTR(`tsqq`, 3) en fait.

Bon déjà c'était marqué nul part et en plus... ouais non rien d'autre mais ça m'a saoulé de le trouver par hasard quoi :)

Bon ben merci, c'est résolu !

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Mer Mar 25, 2009 1:32

Heu non c'est pas résolu en fait :)

Ça marche pas si je met deux chiffres (le 2 et le -9 dans l'exemple)

mysql_query("UPDATE tsqq SET tsqq=SUBSTR(`tsqq`, 2, -9) WHERE id=24099");

Ça ne marche que si je ne met qu'un chiffre, or en en mettant qu'un seul, on ne peut pas supprimer des lettres à la fin.

A la limite je peut peut-être faire un truc style : tsqq=tsqq - SUBSTR(`tsqq`, -9)
Y'a moyen de faire un truc dans ce genre là ?

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: substr() me fait des trucs bizarre

Message le Mer Mar 25, 2009 9:22

et SUBSTR en minuscule?

noel2008
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 16 Nov 2008

Re: substr() me fait des trucs bizarre

Message le Jeu Mar 26, 2009 16:19

Non ça ne change rien. (j'avais déjà testé mais par acquis de conscience j'ai rééssayé, même résultat)

En fait ce que je trouve bizarre c'est que ça marche parfaitement avec un chiffre, mais pas avec 2.

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: substr() me fait des trucs bizarre

Message le Jeu Mar 26, 2009 20:08

noel2008 a écrit:mysql_query("UPDATE `tsqq` SET `tsqq`= SUBSTR('tsqq', 12)");


esais ca: ?

Code: Tout sélectionner
mysql_query("UPDATE tsqq SET tsqq='SUBSTR('tsqq', 12)'  WHERE id=24099");


UPDATE tsqq :arrow: c'est bien le nom de ta table?
SET tsqq :arrow: c'est bien le nom de ton champs?
WHERE id=24099" :arrow: à parametrer selon besoin...


erestrebian
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 473
Inscription: 15 Juin 2007

Re: substr() me fait des trucs bizarre

Message le Jeu Mar 26, 2009 20:24

webmasterdemonsite a écrit:mysql_query("UPDATE `tsqq` SET `tsqq`= SUBSTR('tsqq', 12)");


et si tu mettais
Code: Tout sélectionner
mysql_query("UPDATE `tsqq` SET `tsqq`= " . substr('tsqq', 12) .";");


je sais pas si ça peut changer grand chose mais ça me parait plus propre si tu veux utiliser la fonction php... il me semble que la fonction mysql s'appelle SUBSTRING!

le fonctionnement bizarre vient à mon avis de la confusion des langages...

substr() me fait des trucs bizarre

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités