substr() me fait des trucs bizarre

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par noel2008, 24 Mars 2009.

  1. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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 !
     
  2. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    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+!
     
  3. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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...
     
  4. jeanluc
    jeanluc WRInaute accro
    Inscrit:
    3 Mai 2004
    Messages:
    2 875
    J'aime reçus:
    0
    Faut pas confondre substr (PHP) et SUBSTR (MySQL). :wink:

    Jean-Luc
     
  5. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    Ah mince !

    Désolé !
     
  6. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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 !
     
  7. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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.
     
  8. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    Code:
    mysql_query("UPDATE tsqq SET tsqq=SUBSTR(tsqq, 3) WHERE id=24099");
    ?
     
  9. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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.
     
  10. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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 !
     
  11. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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à ?
     
  12. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    et SUBSTR en minuscule?
     
  13. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    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.
     
  14. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    esais ca: ?

    Code:
    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...
     
  15. erestrebian
    erestrebian WRInaute occasionnel
    Inscrit:
    15 Juin 2007
    Messages:
    411
    J'aime reçus:
    0
    et si tu mettais
    Code:
    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...
     
  16. noel2008
    noel2008 WRInaute discret
    Inscrit:
    16 Novembre 2008
    Messages:
    79
    J'aime reçus:
    0
    Oups j'ai du mal m'exprimer car en fait : mysql_query("UPDATE tsqq SET tsqq=SUBSTR(`tsqq`, 2) WHERE id=24099");
    marche très bien.

    Mais : mysql_query("UPDATE tsqq SET tsqq=SUBSTR(`tsqq`, 2, -9) WHERE id=24099");
    Ne marche pas et m'efface entièrement la valeur du champs. (la différence entre les deux et le deuxième chiffre : le -9.
    Pour mysql il me semble que SUBSTR marche aussi, mais de toute façon j'ai déjà testé les deux.

    M'enfin bref sinon je pense plutôt partir sur du : <?php
    //query qui compte $NombreDentréeTotal

    while ($nombre_de_lignes = $NombreDentréeTotal)
    {
    echo $string_str = preg_replace( '#('.implode('|', ' quand...').')#i', '', $string);
    //Ma requete sql pour que ça update le champs de l'id choisi.
    $nombre_de_lignes++;
    }
    ?>

    Ce qui reviendrait au même : mon but est de supprimer le " quand..." final.

    Par contre vous avez des conseils pour réussir ma boucle ?
    Ce que j'ai mis parait potable ou y'a des trucs qui vont pas ? (j'ai pas encore testé, donc)
     
Chargement...
Similar Threads - substr() trucs bizarre Forum Date
[PHP]Fonction substr() Développement d'un site Web ou d'une appli mobile 12 Mai 2009
Besoin de trucs a calculer sur comment-calculer.net Demandes d'avis et de conseils sur vos sites 14 Mai 2014
ai-je oublié des trucs? Débuter en référencement 26 Janvier 2012
Balise rel="trucs + nofollow" liens ajouter au panier Référencement Google 18 Octobre 2011
Trucs SEO pour pages avec peu de contenu? Débuter en référencement 24 Novembre 2010
Les trucs fun dans les recherches sur les moteurs ... Le café de WebRankInfo 4 Mars 2010
où c'est-y que je les mets ces trucs là???? Débuter en référencement 1 Décembre 2009
Google Analytics : trucs, astuces, conseils, outils... Google Analytics 25 Mai 2009
Des trucs pour MyDir... Développement d'un site Web ou d'une appli mobile 14 Avril 2008
GOOGLE Trucs de pros de nouveau ? (Andrieu et Duffez) Référencement Google 1 Janvier 2008
retour sur les 10 trucs pour montre un site Débuter en référencement 11 Avril 2007
Recherche livre Google Trucs de Pro Débuter en référencement 2 Mars 2007
Google trucs de pro - nouvelle édition ? Le café de WebRankInfo 22 Janvier 2007
Le buzz : vos trucs, efficacité Demandes d'avis et de conseils sur vos sites 3 Décembre 2006
[trucs et astuces] "Déménager" un site web Administration d'un site Web 24 Novembre 2006
Trucs bizarres sur wikipedia Le café de WebRankInfo 24 Novembre 2006
IE7 is here ! trucs et astuces pour tester son site avec IE7 Développement d'un site Web ou d'une appli mobile 21 Novembre 2006
les vieux trucs ne marchent pas nonnonnon, pour preuve Référencement Google 23 Mai 2006
Google, trucs de pros - nouvelle édition ? Référencement Google 18 Mai 2006
Google TRUCS DE PROS :wink: Le café de WebRankInfo 27 Mars 2006