Besoin d'aide pour une requete

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Besoin d'aide pour une requete

par Min's » 19 déc. 2005, 16:28

Products serait ptet un nom réservé de mySQL... :oops:

pour la modif demandée à mon avis il vaudrait encore mieux que tu écrives une page PHP qui lirait tous les enregistrement, qui ferait les modifs et puis qui réécrirait la DB, mais ca reste mon avis :)

par plex » 19 déc. 2005, 16:11

maintenant
j'aimerais savoir

si il est possible de changer

Code : Tout sélectionner

/femme/xxx/image.jpg"
par

Code : Tout sélectionner

/femme/xxx/mini/image.jpg"
En effet cela pourra me servir par la suite :)


ps : voici ma requete terminée :

Code : Tout sélectionner

UPDATE `products` SET products_image_sm_1 = CONCAT( 'Femme/Demetrios2006/mini/', products_image_sm_1 ) , products_image_xl_1 = CONCAT( 'Femme/Demetrios2006/', products_image_xl_1 ) WHERE manufacturers_id =15 AND `products_image_sm_1` IS NOT NULL;

encore un grand merci à vous !

par plex » 19 déc. 2005, 15:46

effectivement ...
erreur de syntax ...

il faut plutot faire

Code : Tout sélectionner

SELECT * FROM `products` WHERE manufacturers_id =15 AND products_id =706;
requete fonctionnelle, merci bcp :)

MERCI à vous
c'est super sympa :)
:roll: :roll: :roll: :roll: :roll: :roll: :lol: :lol: 8) 8) 8) 8) 8)

par Min's » 19 déc. 2005, 15:09

quand tu fais la requète

Code : Tout sélectionner

SELECT * FROM products WHERE manufacturers_id = 15 AND 'products_id' = 706;
Tu obtiens des résultats?

Edit :

Grillé!! :)

par Invité » 19 déc. 2005, 15:08

As tu verifié en faisant un select que tu ciblait bien les enregistreùments que tu esperais?

Verifie bien ta clause de where ...

par plex » 19 déc. 2005, 14:57

merci pour vios réponses,

la requete suivante n'a rien donné.

Code : Tout sélectionner

UPDATE products SET products_image_sm_1 = CONCAT( 'Femme/Demetrios2006/' , products_image_sm_1 ), products_image_xl_1 = CONCAT( 'Femme/Demetrios2006/' , products_image_xl_1 ), products_image_sm_2 = CONCAT( 'Femme/Demetrios2006/' , products_image_sm_2 ) WHERE manufacturers_id = 15 AND 'products_id' = 706;

et j'ai ceci d'affiché :

Nombre d'enregistrements affectés : 0 (traitement: 0.0767 sec.)
Que fairE ?

par Cyrano » 19 déc. 2005, 13:53

Exact, autant pour moi, j'ai oublié un détail : la différence entre ` et '

par Min's » 19 déc. 2005, 13:22

Code : Tout sélectionner

UPDATE products SET products_image_sm_1 = CONCAT( 'Femme/Demetrios2006/' , products_image_sm_1 ), products_image_xl_1 = CONCAT( 'Femme/Demetrios2006/' , products_image_xl_1 ), products_image_sm_2 = CONCAT( 'Femme/Demetrios2006/' , products_image_sm_2 ) WHERE manufacturers_id = 15 AND 'products_id' = 706;
Je sais que ce n'est pas propre, mais bon... :) Personnellement je n'enploie les `` que quand c'est nécessaire sinon je trouve que ca rend le code illisible... :oops:

Edit :

Et d'ailleurs en relisant le code je pense que le prob est là... il prend `Femme/Demetrios2006/` comme un champs vu les ` autour alors qu'il devrait le prendre comme une chaine avec des ' autour... :)

par plex » 19 déc. 2005, 13:04

effectivement .., merci encore !

mais maintenant il me dit :

Code : Tout sélectionner

MySQL a répondu: #1054 - Unknown column 'Femme/Demetrios2006/' in 'field list'
'Femme/Demetrios2006/' étant le chemin pour l'image...

par Cyrano » 19 déc. 2005, 12:51

Tu as oublié des virgules entre les champs à mettre à jour :

Code : Tout sélectionner

UPDATE `products` SET `products_image_sm_1` = CONCAT( `Femme/Demetrios2006/` , `products_image_sm_1` ), `products_image_xl_1` = CONCAT( `Femme/Demetrios2006/` , `products_image_xl_1` ), `products_image_sm_2` = CONCAT( `Femme/Demetrios2006/` , `products_image_sm_2` ) WHERE manufacturers_id = 15 AND `products_id` = 706;

merci pour ta réponse

par plex » 19 déc. 2005, 12:46

merci de ta réponse Cyrano,
j'y vois un peu plus clair.

toute fois, j'ai une erreur dans ma requete, mais je voit pas trop ou...
peut etre dans la syntax ?

Code : Tout sélectionner

UPDATE `products` SET 'products_image_sm_1' = CONCAT('Femme/Demetrios2006/',`products_image_sm_1`) 'products_image_xl_1'= CONCAT('Femme/Demetrios2006/',`products_image_xl_1`) 'products_image_sm_2'= CONCAT('Femme/Demetrios2006/',`products_image_sm_2`) WHERE manufacturers_id=15 AND `products_id`=706;
voici ce que phpmyadmin me réponds :

Erreur

Code : Tout sélectionner

requête SQL : UPDATE `products` SET `products_image_sm_1` = CONCAT( `Femme/Demetrios2006/` , `products_image_sm_1` ) `products_image_xl_1` = CONCAT( `Femme/Demetrios2006/` , `products_image_xl_1` ) `products_image_sm_2` = CONCAT( `Femme/Demetrios2006/` , `products_image_sm_2` ) WHERE manufacturers_id =15 AND `products_id` =706 MySQL a répondu: #1064 - You have an error in your SQL syntax near 'products_image_xl_1` = CONCAT( `Femme/Demetrios2006/` , `products_image_xl_1`' at line 1

quelqu'un a une idée ?
merci encore.

Marc

par Cyrano » 19 déc. 2005, 12:16

La fonction CONCAT() devrait t'aider et en faisant

Code : Tout sélectionner

... SET `champ` = CONCAT('chemin/relatif/', `champ`)...
tu devrais obtenir ce que tu veux. Un petit coup d'oeil dans la doc t'indiquera éventuellement quelques détails.

Besoin d'aide pour une requete

par plex » 19 déc. 2005, 11:32

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 Sad

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 Neutral
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 :
'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 :
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'

détails de la table products qui nous intéressent :
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'
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 :
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