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:
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:
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:
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
Re: Requte Sql Avancée, question ... ? Estce possible ?
ps : j'utilise une base administrée sous phpmyadmin.
Re: Requte Sql Avancée, question ... ? Estce possible ?
Pour répondre à ta question, tu peux faire:
Code:
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:
1 2
| "SELECT CONCAT('" .$repImages. "', products_image_sm_1) AS url
... " |
ou de faire la concaténation en PHP.