Sélectionner des enregistrements proches les uns des autres
franksh
Messages postés
54
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
J'essaie d'exécuter une requête basée sur ce qui est indiqué dans le titre, de sélectionner des enregistrements proches les uns des autres, avec entre deux dates de naissance, sans succès
jusqu'à présent, j'ai essayé cela en regardant de gauche à droite, ce que je veux, c'est renvoyer uniquement les utilisateurs qui se trouvent entre les dates que l'utilisateur actuel aura envoyées par method post, et entre la distance défini.
if (!function_exists('Dot_Distance')) { function Dot_Distance($lat_u, $long_u, $or, $sex, $age, $age_tow, $age_olders, $uid, $distance){ global $db; $latitude = $lat_u; $longitude = $long_u; $distance = $distance; $sagea = 'AND ('.$age_olders.' BETWEEN (YEAR(CURDATE())- ' . $age . ') AND (YEAR(CURDATE())-' . $age_tow . '))'; $query = $db->prepare("SELECT *, (((acos(sin(( $latitude * pi() / 180)) *sin(( `lat_` * pi() / 180)) + cos(( $latitude * pi() /180 ))*cos(( `lat_` * pi() / 180)) * cos((( $longitude - `long_`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `users` WHERE lat_ IS NOT NULL AND long_ IS NOT NULL AND orientation = '$or' AND sex = '$sex' $sagea // return 2008-07-05 / 2011-07-05 AND id <> '$uid' HAVING distance < '$distance' ORDER BY distance * 1 ASC"); $query->execute(); $query = $query->fetchAll(PDO::FETCH_OBJ); // var_dump($sagea); return $query; } }
Windows / Chrome 126.0.0.0
Merci d'avance
A voir également:
- Alexia organise un séminaire en ligne (webinaire) : elle cherche un outil qui permet de gérer les invitations, de relancer les invités et d’enregistrer le webinaire.
- Invite de commande - Guide
- Partage de photos en ligne - Guide
- Audacity enregistrer son pc - Guide
- Formulaire en ligne de meta - Guide
- Mètre en ligne - Guide
Le calcul et correct je crois que le problème viens au niveau du date
Je serais curieux de voir ce que donne ceci:
Le test à propos de l'âge est bizarre, on dirait qu'il ne va pas chercher l'âge dans la base de données.
ceci return un array(0) { } avec l'âge, mais sans l'âge je récupère bien des données
Quel sens cela a-t-il de faire ce test:
Ne serait-il pas plus logique d'avoir, au lieu de 2002, le nom du champ âge dans la table users? Et les parenthèses sont-elles bien placées?
Peut-être plutôt:
Toujours pas.