J'essaye de produire des résultats de 2 requêtes sql à un fichier JSON. Le problème est que je voudrais les ordonner ascendants par distance qui est le résultat d'une équation qui prend homelat et homelon de la table des utilisateurs et lat, lng de la table des localisations (en gros il faut lattitude et longitude d'un point et d'un autre et calcule la distance entre ces points). Est-il possible de prendre certains paramètres à partir des deux requêtes select, de le calculer et de sortir le résultat dans l'ordre croissant?Comment commander par les résultats de 2 tables séparées en PHP et MySQL
$wynik = mysql_query("SELECT homelat, homelon FROM users WHERE guid='2'") or
die(mysql_error()); ;
$query = "SELECT * FROM locations WHERE timestamp";
$result = map_query($query);
$points = array();
while ($aaa = mysql_fetch_assoc($wynik)) {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
array_push($points, array('name'=>$row['name'], 'lat'=>$row['lat'],
'lng'=>$row['lng'], 'description'=>$row['description'],
'eventType'=>$row['eventType'], 'date'=>$row['date'],
'isotime'=>date('c', ($row['timestamp'])), 'homelat'=>$aaa['homelat'],
'homelon'=>$aaa['homelon']));
}
echo json_encode(array("Locations"=>$points));
Droite. Dois-je placer votre code juste avant echo json_encode? – Vonder
Oui, sauf que les fonctions peuvent aller n'importe où. Pour gagner du temps de calcul, vous devez calculer la distance à mesure que vous sauvegardez la matrice. Donc, dans le array_push, stockez la chose dist() là-dedans. Et puis l'usort devrait seulement trier les $ a ['dist'] et $ b ['dist']. Je vais modifier pour vous montrer ce que je veux dire. –
Génial, merci. – Vonder