Comparer la date du jour et celle d'une base

Répondre
i M@N
le 25/10/2003 à 12:53
i M@N
Hello !

J'ai un piti problème.

J'ai une table dans la quelle j'ai un champ date au format Datetime : 2003-12-01 20:30:30.

Dans une requête je voudrais sélectionner les enregistrement dont l'année, le mois et le jour sont égaux à ce de la date du jour, un truc du genre :

// on recupere la date de l'instant présent
$date_today = date("Y-m-d H:i:s");

// on décompose la date
sscanf($date_today, "%4s-%2s-%2s %2s:%2s:%2s", &$an_today, &$mois_today, &$jour_today, &$heure_today, &$min_today, &$sec_today);
...
$sql = 'DELETE FROM visiteurs WHERE ip= "'.$ip.'" AND "'.$an.'" = "'.$an_today.'" AND "'.$mois.'" = "'.$mois_today.'" AND "'.$jour.'" = "'.$jour_today.'"';

Mais je sais pas comment faire.

Quelqu'un peut m'expliquer svp?

@+...
One Love, One Heart, One Unity.
i M@N
le 25/10/2003 à 14:09
i M@N
Reuh ...

Non mais LA_GLOBULE, je t'aime bien, mais tes trucs en anglais où il faut chercher dans des pages de 20 km de long ça m'aide pas.

Je vais me débrouiller, je changerai pas mon format Datetime.

@+...
One Love, One Heart, One Unity.
LA GLOBULE
le 25/10/2003 à 14:20
LA GLOBULE
Ben c'est dommage parce que la solution est la bas :/

(et y'a meme des exemples, et le lien, il tombe pile sur le bon nivo de la page ou ca parle de date, tu n'as qu'a faire defiler la page vers bas)
i M@N
le 25/10/2003 à 16:25
i M@N
Reuh ...

Bah non la solution c'est de faire :

<?

// on recupere la date de l'instant présent
$date_today = date("Y-m-d H:i:s");

// on décompose la date
sscanf($date_today, "%4s-%2s-%2s %2s:%2s:%2s", &$an_today, &$mois_today, &$jour_today, &$heure_today, &$min_today, &$sec_today);

// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}

...

// on se connecte à notre base
include("./base_connexion.php");

// on prépare une requête SQL permettant de rechercher cette adresse IP dans notre table.
$sql = 'SELECT * FROM visiteurs WHERE ip= "'.$ip.'"';

// on lance la requête SQL (mysql_query) et on affiche un message d’erreur si la requête ne se passait pas bien (or die)
$req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.@mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on récupère les valeurs qui nous intéressent
$ip = $data['ip'];
$date = $data['date'];
}
// on décompose la date
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", &$an, &$mois, &$jour, &$heure, &$min, &$sec);


// on comptabilise le nombre de résultats obtenus : soit 1, soit aucun (attention, aucun est différent de 0)
$nb_connectes = @mysql_num_rows($req);

// on libère l’espace mémoire alloué pour cette requête SQL
@mysql_free_result($req);

if ($nb_connectes) {

// lancement de la requête de suppression
$sql = 'DELETE FROM visiteurs WHERE ip= "'.$ip.'" AND date = "'.$an_today.'-'.$mois_today.'-'.$jour_today.'-'.$heure.'-'.$min.'-'.$sec.'"';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
@mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.@mysql_error());

$sql = "INSERT INTO visiteurs VALUES('', '$prenom', '$email', '$date_today', '$ip', '$host', '$navigateur', '$referer')";

// on lance la requête SQL (mysql_query) et on affiche un message d’erreur si la requête ne se passait pas bien (or die)
$req = @mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.@mysql_error());
}
else {

// on entre dans ce cas si le client n’a jamais chargé de page.
$sql = "INSERT INTO visiteurs VALUES('','$pseudo','$email','$date_today','$ip','$host','$navigateur','$referer')";

// on lance la requête SQL (mysql_query) et on affiche un message d’erreur si la requête ne se passait pas bien (or die)
$req = @mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.@mysql_error());
}

// on ferme la connexion à la base de données
@mysql_close();

?>

Vala stout,
smiley

@+..
One Love, One Heart, One Unity.
ejacot
le 25/10/2003 à 16:49
ejacot
include("./base_connexion.php");

cc tt con ms, ./ ca va chercher où?
N@M i
le 25/10/2003 à 17:02
N@M i
sur le meme repertoire que ton script php c est pareil que de ne pas le mettre
ca me reussi pas le bed j prefere le narguilé
LA GLOBULE
le 25/10/2003 à 20:12
LA GLOBULE
Ca premier include sert à importer les lignes de codes permettant de faire une connexion sur la base de données (y'a un exemple dans le cours....) au lieu de retaper ce code à chaque fois...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours