Requete correcte qui ne marche pas.

Profil bloqué -  
 Profil bloqué -
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   Statut Membre Dernière intervention   57
 
MySQL ou SQL Server ?
0
Profil bloqué
 
MYSQL, site hébergé chez Free (pardon de l'oubli)
0
creadiff Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   57
 
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
Profil bloqué
 
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é
 
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   Statut Membre Dernière intervention   57
 
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é
 
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