Requête ne fonction pas

imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012 - 10 mars 2012 à 15:24
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012 - 14 mars 2012 à 20:36
bonjour
j'ai un petit problème , je veut construire un script pour permet de faire un update automatique pour supprimer les annonces qui a y'ont la date expiré .
merci d'avance.
mes la requête ne fait pas se que je veut.

mon code c'est:

<?php
include("connexion_test.php");
$query=@mysql_query("SELECT * FROM 'jeux_video'");
while($result=@mysql_fetch_array($query))
{
date_default_timezone_set('Africa/Casablanca');
$date_jour= getdate();
$date_expire=$result['date_ajout'];
if ($date_expire<$date_jour)
{
$rq=@mysql_query("DELETE * FROM 'jeux_video' ");
}
echo "annonce expirée";
}

?>

9 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
11 mars 2012 à 06:43
Salut,

Quel est le type du champ jeux_video ? D'une manière générale tu peux t'en sortir avec simplement un seul delete de ce genre (si besoin change NOW() par plus approprié) :
<?php
include('connexion_test.php');
@mysql_query('DELETE FROM "jeux_video" WHERE jeux_video > NOW()');
?>


PS : mysql_* c'est mal, PDO c'est bien !
0
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
12 mars 2012 à 13:20
bonjour
"jeux_video" c'est un table , j'ai déjà essai la fonction NOW() mais ça marche pas ,et quand j'ai essai de travaille avec le PDO j'ai reçu pleine d'erreur , sa ne fonctionne pas avec mon serveur local ,j'ai le APSERV 2.6.

je sais pas ce que je peut fait.
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
12 mars 2012 à 17:13
Salut,

Est ce que tu sais ce que te retourne la fonction getdate()?
Elle te retourne un tableau associatif (tu peux voir le nom des clés du tableau ici)

Là, tu compares des types différents.

Qu'est ce que tu reçois comme message d'erreur?
Qu'est ce que tu as utilisé comme type de données pour le champ "date_ajout" dans ta base de données ?
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
12 mars 2012 à 19:49
Salut,

"jeux_video" c'est un table

Ouais, je voulais dire date_ajout.

j'ai déjà essai la fonction NOW() mais ça marche pas

Non. Ça fonctionne très bien, c'est juste que tu ne sais pas l'utiliser, ce qui est totalement différent.
0

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

Posez votre question
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 12:59
salut

je choisi pour le champs "date_ajout" le type date.

et j'ai déjà essai la fonction NOW() comme ça:
<?php
include('connexion_test.php');
@mysql_query("DELETE FROM 'jeux_video' WHERE 'date_ajout' < NOW()");
?>


maintenant je ne reçu aucun erreur, mais le requête ne fait pas le mis a jour.
quand je consulte le table dans ma base de donnée rien je change ,il ne fait pas la suppression.
0
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 13:02
salut

premièrement j'ai utilise la fonction date comme ça:

<?php
include("connexion_test.php");
$query=@mysql_query("SELECT * FROM 'jeux_video'");
while($result=@mysql_fetch_array($query))
{
date_default_timezone_set('Africa/Casablanca');
$date_jour= date('y-m-d');
$date_expire=$result['date_ajout'];
if ($date_expire<$date_jour)
{
$rq=@mysql_query("DELETE * FROM 'jeux_video' ");
}
echo "annonce expirée";	
}

?>


mais le même problème .
0
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 14:53
j'ai utilise se code :
<?php
include('connexion_test.php');
mysql_query("DELETE FROM jeux_video WHERE date_expire < NOW()");
?>

il fait la suppression parfaitement mais comment je peut met la requête exécute automatiquement chaque jour???
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
14 mars 2012 à 18:50
Salut,

il fait la suppression parfaitement mais comment je peut met la requête exécute automatiquement chaque jour???

Avec une tâche cron par exemple.
0
imacode Messages postés 6 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 20:36
se que je compris que les tâche cron exécute sous Linux, mais je travaille avec Windows.

est ce que il y a des programme similaire pour le Windows???
0
Rejoignez-nous