IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Selectionner partie d'un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Par défaut Selectionner partie d'un champ
    Bonjour,

    J'ai un petit souci de sélection dans ma base de données. Voici mon champ "images"

    [{"index":1,"image":"un-nouveau-test-d-annonce_12_1.jpg","thumbnail":"un-nouveau-test-d-annonce_12_1_t.jpg"}]

    Je veux sélectionner un-nouveau-test-d-annonce_12_1_t.jpg only. Seulement, le nom est différent (forcément) selon la donnée entrée :

    champ1 : un-nouveau-test-d-annonce_12_1_t.jpg
    champ2 : hello_ads_2.jpg

    De fait, je souhaite sélectionner la première lettre (u or h) jusqu'à la fin de l'adresse (jpg).

    J'ai ceci comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     $img ="SELECT
        SUBSTR(a.images, 
          locate('l\":\"',@field)+1, locate('g\"}',@field)-locate('l\":\"',@field)-1)
    FROM 
        base_adsmanager_ads a
        " ; 
     
       $resultimg = mysql_query($img) or die(mysql_error());
     
      if (mysql_num_rows($resultimg) > 0) {  while ($rowimg = mysql_fetch_array($resultimg)) {          echo $rowimg['images']  ;
       } }?>
    J'ai des résultats dans mon tableau et dans mon resultimg, mais mon rowing['images'] reste vide.

    Merci d'avance pour vos réponses2.

    N'étant pas confirmé en terme de requêtes sql, je sollicite votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est moche mais ça pourrait être ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTR(images, locate('\"image\":\"',images)+12,  locate('.jpg', images) - locate('\"image\":\"',images) - 8)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Par défaut
    Citation Envoyé par sabotage Voir le message
    C'est moche mais ça pourrait être ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTR(images, locate('\"image\":\"',images)+12,  locate('.jpg', images) - locate('\"image\":\"',images) - 8)
    Merci pour votre réponse rapide. Testé, mais sans résultats. Ce qui est intéressant, c'est qu'en testant le nombre de résultats, je me retrouve bien avec un contenu.

    C'est le echo $rowing['images'] qui ne me renvoie absolument rien...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Angelheart29 Voir le message
    C'est le echo $rowing['images'] qui ne me renvoie absolument rien...
    C'est normal, puisque le champ "images" n'est pas sélectionné dans la requête.
    Du plus, ce n'est pas le champ "images" que tu dois afficher, mais le SUBSTR(.....), qui n'est pas nommé non plus dans la requête...

    Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUBSTR(.....) AS img_thumb ...
    et afficher $rowing['img_thumb'].

    N.B. Perso, je n'aurais pas fait le SUBSTR en SQL, mais en PHP (après la requête, donc) avec une regex, ou mieux ici avec json_decode() (comme le propose amoiraud).
    Dernière modification par Invité ; 26/11/2012 à 17h13.

  5. #5
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Ou sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $img = "SELECT a.images
               FROM  base_adsmanager_ads a"; 
     
    $resultimg = mysql_query($img) or die(mysql_error());
     
    if (mysql_num_rows($resultimg) > 0) { 
        while ($rowimg = mysql_fetch_array($resultimg)) {
            $image = json_decode($rowimg['images']);
            echo $image[0]->image;
        }
    }

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Par défaut
    Citation Envoyé par amoiraud Voir le message
    Ou sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $img = "SELECT a.images
               FROM  base_adsmanager_ads a"; 
     
    $resultimg = mysql_query($img) or die(mysql_error());
     
    if (mysql_num_rows($resultimg) > 0) { 
        while ($rowimg = mysql_fetch_array($resultimg)) {
            $image = json_decode($rowimg['images']);
            echo $image[0]->image;
        }
    }
    Parfait, that's it ! Merci à vous tous pour vos réponses claires et rapides.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche d'une partie d'un champ texte
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 13/01/2006, 18h04
  2. Select sur une partie d'un champs texte
    Par dl_jarod dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/11/2005, 15h25
  3. selectionner et transmettre un champ d'un div
    Par LFC dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/11/2005, 15h57
  4. tri sur une partie d'un champ
    Par yoline dans le forum Access
    Réponses: 4
    Dernier message: 19/09/2005, 11h25
  5. récupérer la partie décimale d’un champ
    Par maouazzani dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/04/2004, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo