Delete automatique

speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013 - 21 avril 2006 à 12:28
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013 - 21 avril 2006 à 14:06
Bonjour , voici que j 'ai le delete fonction très bien ;-) mais cela fonction directement je voix pas l'erreur que j'ai fait seriez vous m'eclairez svp????

<?php
session_start();


if (!isset($_SESSION['login']) && !isset($_SESSION['sexy'])) {

echo "<script language="JavaScript">
setTimeout("window.location='index.php'",0); // delai en millisecondes
</script>";
exit();
}
require_once('config.php');

$limite_temps=3600*24*30; //30jours


$temps_limite=$temp-$limite_temps;


mysql_query("DELETE FROM annonce WHERE temp <'$temps_limite' OR id='$id'") or die('Impossible d\'effectuer la requête');

?>

3 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
21 avril 2006 à 13:22
Salut,

Il serait souhaitable que tu précises un peu plus le problème et que tu fournisses le contenu de config.php
Ta variable $temp est elle correctement définie ? et $id, kesako ? et le champ, quel type / valeur ? un exemple ?

Bonne chance,

Kohntark-
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
21 avril 2006 à 13:41
il y a une erreur de syntaxe dans la requête :
les guillemets simples que tu voudrais passer à SQL sont interpretées par PHP et les variables qu'elles contiennent ne sont pas remplacées.

"DELETE FROM annonce WHERE temp <'$temps_limite' OR id='$id'"

après PHP devient :

DELETE FROM annonce WHERE temp <'$temps_limite' OR id='$id'

msql_query ne retourne peut etre aucune erreur mais sql ne delete rien puisque aucun id dans ta base ne vaut '$id' (peut etre 1, 2, 3 etc.) ni aucun temps ne vaut '$temps_limite'

remplace ta chaine SQL par

"DELETE FROM annonce WHERE temp <$temps_limite OR id=$id"

et si $id 1 et $temps_limite 3
alors ta chaine SQL devient

DELETE FROM annonce WHERE temp <3 OR id=1

les guillemets simple seront necessaires seulement si $temps_limite et $id sont autre chose que des valeurs numériques. Il faudra alors remplacer par :

"DELETE FROM annonce WHERE temp <'".$temps_limite."' OR id='".$id."'"

et si $id='test' $temps_limite='2006-04-01'

alors la chaine SQL devient

DELETE FROM annonce WHERE temp <'2006-04-01' OR id='test'

Pour le reste la question n'est pas claire du tout.
0
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013
21 avril 2006 à 14:06
reponse a la question temp = a la date de l insertion
0
Rejoignez-nous