adapter requête SQL pour ne garder que les caractères alphanumérique

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] adapter requête SQL pour ne garder que les caractères alphanumérique

    Bonjour à tous,

    Petite question SQL : dans une requête SQL, j'ai ceci :

    SELECT c.title As Article_Titre, c.id As Article_ID, g.title As Catégorie_Titre,
    concat(left(c.introtext,35)," (...) ",right(c.introtext,35)) AS Intro_20_caractères

    Bref, l'idée était de ne garder que le début et la fin de l'introtext.
    Mais j'ai un effet de bord : vu que c'est du HTML, il faudrait en fait que je ne garde que les caractères alphanumériques de l'introtext.

    C'est sûrement simple, mais ce n'est pas vraiment mon rayon
    Qqun aurait-il une astuce ?
    Un peu comme il y a "left(xyz)", s'il y avait un "nettoie(xyz", ce serait cool p ex
    Dernière édition par cavo789 à 15/10/2018, 21h29
    Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

    Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

  • #2
    Salut Marc

    Si je comprends bien ton besoin, tu veux extraire les 35 premiers et derniers caractères du champs *introtext* et, entre les deux, mettre "(...)" pour signifier que tu as coupé.

    En SQL tu n'y arriveras pas car, premièrement, comme tu l'as noté, il faut d'abord virer les tags HTML. Rien ne fait ça dans la norme SQL (tu peux développer tes propres "user-defined functions" mais c'est hors sujet ici).

    Vu que tu es dans le monde merveilleux de PHP; ta solution est de faire ce nettoyage en PHP.

    Tu as la fonction strip_tags (http://php.net/manual/fr/function.strip-tags.php) qui permet de supprimer toutes les balises puis, ensuite, si la longueur de l'intro est supérieure à 70 caractères, tu peux faire ton left et ton right; en php donc.

    Est-ce que cette explication peut être une réponse à ta question ?

    Code PHP:
    <?php

    $str 
    '<p><strong>The quick brown fox jumps over the lazy dog</strong>'.
       
    'is an English-language pangram—a sentence that contains all of the '.
       
    'letters of the alphabet. <span class="YotYot">It is commonly used for '.
       
    'touch-typing practice</span>, testing typewriters and com****r keyboards, '.
       
    'displaying examples of fonts, and other applications involving text where '.
       
    'the use of all letters in the alphabet is desired. Owing to its brevity and '.
       
    'coherence, it has become widely known.</p>';

    $clean strip_tags($str);

    echo 
    substr($clean0,35) . '…' substr($clean, -35);
    Résultat :
    Code:
    The quick brown fox jumps over the …erence, it has become widely known.
    Dernière édition par cavo789 à 15/10/2018, 17h45
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Trop fort
      OK, bien noté qu'on ne le fait pas au niveau du SQL pcq plus simple de le faire au moment de la manipulation en PHP.

      Encore merci pour l'échange en off !

      Tout marche nickel maintenant.
      Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

      Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

      Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X