Requete correcte qui ne marche pas.

Fermé
Profil bloqué - 27 avril 2010 à 12:11
 Profil bloqué - 28 avril 2010 à 10:31
Bonjour,

J'ai une requete qui est correcte mais qui ne fonctionne pas. la voici :
UPDATE 'marketplace_ads' SET published = 0 WHERE 'date_created'< DATE_SUB( '2010-04-27', INTERVAL 10 DAY)

Dans ma base j'ai plusieurs enregistrements qui ont comme valeur dans : date_created --> 2010-04-26

Pourquoi est-ce que l'udpate ne se fait pas (je n'ai aucun erreur de syntaxe), sa me mets que sa a mis à jour 0 enregistrements.

7 réponses

creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
27 avril 2010 à 12:19
MySQL ou SQL Server ?
0
Profil bloqué
27 avril 2010 à 12:21
MYSQL, site hébergé chez Free (pardon de l'oubli)
0
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
27 avril 2010 à 14:12
La requête UPDATE 'marketplace_ads' SET published = 0 WHERE 'date_created'< DATE_SUB( '2010-04-27', INTERVAL 10 DAY) est censée modifier les marketplace dont la date de création est antérieure au 17 avril 2010.

A mon avis, il n'y a aucun enregistrement correspondant à ce critère dans tes tables. MySQL n'a donc aucune entrée à modifier.
0
Voici le contenu de ma table (une ligne par exemple ) :
INSERT INTO 'marketplace_ads' ('id', 'category', 'userid', 'user', 'name', 'surname', 'street', 'zip', 'city', 'state', 'country', 'phone1', 'phone2', 'email', 'web', 'ad_type', 'ad_headline', 'ad_text', 'ad_condition', 'ad_price', 'ad_image', 'date_created', 'date_lastmodified', 'views', 'duration', 'flag_featured', 'flag_top', 'flag_commercial', 'payment', 'published') VALUES 
(40, 12, 77, 'aaaaaaaaa', 'aaaaaaaaa', '', '', '', '', '', '', '', '', 'ttttttt@gmail.com', '', '4', 'rrrrrrrrrrrrr', 'rrrrrrrrrrrrrrrrrrr', '', '', 0, '2010-04-26', '2010-04-26', 0, 30, 0, 0, 0, 0, 1), 
(43, 12, 62, 'admin', 'Administrator', '', '', '', '', '', '', '', '', 'tititi@gmail.com', '', '4', 'Mon texte ici', 'voici mon texte qui sera dépublié demain', '', '12', 0, '2010-04-26', '2010-04-26', 0, 30, 0, 0, 0, 0, 1);


Donc j'ai bien des enregistrements dont la date de création est antérieure au 17 avril.

Si je fais : UPDATE 'marketplace_ads' SET published = 0 WHERE 'date_created'< DATE_ADD( '2010-04-27', INTERVAL 10 DAY) alors sa modifie les enregistrements (mais pas correctement)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
27 avril 2010 à 14:41
Si tu veux, je peux te donner la requete sql afin de créer la table :

CREATE TABLE IF NOT EXISTS 'marketplace_ads' (
'id' int(10) unsigned NOT NULL auto_increment,
'category' int(10) unsigned default '0',
'userid' int(10) unsigned default NULL,
'user' varchar(25) default NULL,
'name' varchar(50) default NULL,
'surname' varchar(50) default NULL,
'street' varchar(50) default NULL,
'zip' varchar(10) default NULL,
'city' varchar(50) default NULL,
'state' varchar(50) default NULL,
'country' varchar(50) default NULL,
'phone1' varchar(50) default NULL,
'phone2' varchar(50) default NULL,
'email' varchar(50) default NULL,
'web' varchar(80) default NULL,
'ad_type' varchar(20) default NULL,
'ad_headline' varchar(80) default NULL,
'ad_text' text,
'ad_condition' varchar(20) default NULL,
'ad_price' varchar(20) default NULL,
'ad_image' tinyint(4) default '0',
'date_created' date default NULL,
'date_lastmodified' date default NULL,
'views' int(10) unsigned default '0',
'duration' int(10) unsigned default '30',
'flag_featured' tinyint(1) default '0',
'flag_top' tinyint(1) default '0',
'flag_commercial' tinyint(1) default '0',
'payment' tinyint(1) default '0',
'published' tinyint(1) default '1',
PRIMARY KEY ('id'),
KEY 'marketplace_ads_category' ('category'),
KEY 'marketplace_ads_userid' ('userid'),
KEY 'marketplace_ads_ad_type' ('ad_type')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=45 ;
0
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
27 avril 2010 à 19:50
Effectivement, aucun enregistrement n'a une valeur date_created antérieure au 17 avril 2010 (cf. message précédent). Que comptes-tu faire avec cette requête ?
0
Profil bloqué
28 avril 2010 à 10:31
En faite, je faisais ensuite mes tests avec la requete suivante :
UPDATE 'marketplace_ads' SET published = 0 WHERE 'date_created'< DATE_SUB( '2010-04-27', INTERVAL 1 DAY)
Sa marche à présent.

merci pour ton aide
0