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

Administration MySQL Discussion :

Requte Sql Avancée, question ... ? Estce possible ?


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut Requte Sql Avancée, question ... ? Estce possible ?
    bonjour

    j'aimerais faire une petite requete sql permettant de corriger le chemin des mes images dans ma base SQL ....

    En effet dans le module d'administration de mon site, il y a un petit bug qui empeche d'avoir le chemin de l'image dans la base SQL ...

    l'image doit donc se trouver à la racine du serveur pour etre affichée

    Donc j'aimerais faire une petite requete SQL afin de corriger ce problème
    Pour les produits n'ayant pas d'image, c'est assez simple de faire une requete SQL ...
    exemple de requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE `products` SET 
    `products_image`=NULL, 
    `products_image_med`=NULL,
    `products_image_lrg`=NULL
    WHERE manufacturers_id=16
    AND `products_image` =''
    AND `products_image_med`=''
    AND `products_image_lrg`='';
    Mais étant donné que j'ai saisi le nom de l'image picture.jpg par exemple
    les collonnes sont donc remplies de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'products_image_xl_1'=picture2.jpg
    'products_image_sm_2'=picture2.jpg
    'products_image_sm_1'=picture2.jpg
    Concrètement j'aimerais mettre le chemin de l'image ...
    mais si je fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE 
    SET  
    'products_image_sm_1'='Femme/D/mini/'
    'products_image_xl_1'='Femme/D/'
    'products_image_sm_2'='Femme/Dmini/'
    WHERE manufacturers_id=15
    AND  `products_id`=706;
    Et bien je n'aurais plus le nom de l'image dans le champ correspondant ... je n'aurais que le chemin ...

    et donc j'aimerais rajouter le chemin devant le nom de l'image
    (le chemin étant fixe mais sachant qu'il y a un chemin pour le SM (mini) et un pour le XL

    'products_image_sm_1'='Femme/D/mini/picture.jpg'

    Existe t il alors une facon de procéder pour ajouter le chemin derriere le nom de l'image


    d'avance, merci
    Marc

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut Re: Requte Sql Avancée, question ... ? Estce possible ?
    ps : j'utilise une base administrée sous phpmyadmin.

  3. #3
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut Re: Requte Sql Avancée, question ... ? Estce possible ?
    Pour répondre à ta question, tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE table
    SET  
    products_image_sm_1= 
      IF(
        (products_image_sm_1 IS NULL) OR (products_image_sm_1=''),
        NULL,
        CONCAT('Femme/D/mini/', products_image_sm_1)
      )
     
    WHERE ...
    Cependant, ce n'est pas très évolutif comme manière de procéder. Imaginons que tu veuilles changer le chemin d'accès où sont stockées tes images, ce ne sera pas facile de changer tous les chemins d'accès dans ta table. Il est préférable de stocker le chemin d'accès dans une constante et d'afficher le chemin complet le moment venu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SELECT CONCAT('" .$repImages. "', products_image_sm_1) AS url
    ... "
    ou de faire la concaténation en PHP.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  4. #4
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Je ne suis pas sur que ce soit possible. Quoique mais en mySQL, je ne sais pas.

    Sinon si tu utlise un script qui prend les valeurs, y ajoute la chaine et fais l'update avec la nouvelle valeur.

    C'est rapide et ca fonctionne.

    Il serait toutefois interessant de savoir si c'est faisable

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    merci pcaboche mais je ne pense pas que cela puisse marcher

    en effet il y a le nom de l'image dans le champ pour l'instant ...

    il faudrais que je stock a un a un les noms des images
    que j'ajoute le chemin

    et qu'ensuite je remette le nom de l'image


    Tchinkatchuk
    ton idée me plait

    mais je ne sais pas comment faire aussi ...

  6. #6
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    tu travaille sous quel environnement ?

    si php par exemple, tu fais la requete qui prend toutes les images
    tu boucles dessus
    a chaue fois, tu ajoute le chemin et tu fais un update de l'image que tu viens de modifier.

    dis mois si tu ne comprend pas

  7. #7
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Tchinkatchuk, c'est trop compliqué comme solution (à utiliser en dernier recours)

    plex, donne nous un exemple du contenu de ta table, parce que j'ai beau lire et relire, je ne vois pas où est le problème.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    Je vais essayer de vous donner plus d'infos mais tout d'abord, un grand merci à vous

    je vais dans la table 'products'
    le problème que j'évoque ne se présente que pour un seul fournisseur

    donc je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM `products`WHERE manufacturers_id=16
    la je voit tous mes produits donc le manufacturer id =16
    détails de la table products qui nous intéressent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    products_image_sm_1   	 
    products_image_xl_1   	 
    products_image_sm_2   	  
    products_image_xl_2   	  
    products_image_sm_3   	  
    products_image_xl_3
    donc dans ces champs
    je devrais avoir par exemple pour la premiere image 'secondaire'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    products_image_sm_1 :'/fournisseur/collection/mini/image.jpg'
    products_image_xl_1  : '/fournisseur/collection/image.jpg'
    Dans les champs que je souhaite modifier pour l'instant j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    products_image_sm_1  = 892D.jpg
    products_image_xl_1  = 892D.jpg
    Ou bien encore dans certains des champs
    j'ai la valeur NULL donc on ne touche pas dans ce cas la, puisque le produit ne possède qu'une seule image (champ tout autre dans ma base)
    Dans d'autres, rien n'est renseigné, donc ... on ne met rien (la valeur NULL est absente pour une raison indéterminée)

    Sinon, je travail sous phpMyadmin et mon site est fait en Php mais c'est une usine à gaz, un site opensource


    Est ce que ca vous aide
    Merci à vous pour vos réponses.

    Marc

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    on pourrait peut etre faire

    UPDATE 'products'
    SET products_image_sm_1 = \chemin\'products_image_sm_1'

    je ne sait pas trop si ca marcherais

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

Discussions similaires

  1. requête sql avancée
    Par celeborn56 dans le forum WinDev
    Réponses: 7
    Dernier message: 12/05/2009, 16h19
  2. requête sql avancée
    Par aurapp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/04/2007, 18h18
  3. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 10h33
  4. Réponses: 12
    Dernier message: 30/01/2007, 13h37
  5. [MySQL] Est-ce possible de creer des champs en temps réel lors d'une requête SQL ?
    Par kaptnkill dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/09/2006, 19h18

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