Sélectionner des enregistrements proches les uns des autres
franksh
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
"sans succès": le calcul de la distance est-il correct? cela donne quoi si tu retires la clause HAVING?
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.