Codeigniter la sélection de données avec plusieurs id

Voici un exemple de mon code et une explication de ce que je suis en train de faire.

Au début du code, je suis à la sélection de trois variables dans ma base de données. J'ai ensuite comparer à une fonction qui détermine la distance, si la distance est la distance donnée alors que j'ai l'id de l'enregistrement. Il en résultera plusieurs id. Pourrait être de cinq ou aucun, dépend de variables donné.

Ce que j'ai besoin de savoir, c'est une fois que j'ai déterminé que id-je besoin pour utiliser j'ai besoin de mettre dans une variable ou quelque chose d'autre qui est gérable. Essentiellement, j'ai besoin de prendre la liste de requête et de la base de données à nouveau pour obtenir la liste de détails à partir de la base de données. La liste sera de retour des objets qui seront ensuite passé à json_encode pour le traitement.

Ce que j'ai besoin de savoir, c'est quelle est la meilleure façon de mettre chaque id dans une variable et de le transmettre à une requête de base de données et obtenir les résultats dont j'ai besoin.

J'ai essayé d'utiliser $dbStations->where('_id', '34,33,45') mais il ne retourne la première valeur. J'ai besoin de quelque chose comme WHERE _id = 34 AND 33 AND 45 si possible.

J'utilise Codeigniter pour mon cadre et j'ai passé plus de la documentation et je n'ai pas trouvé une solution.

EDIT: Maintenant que j'ai les données sélectionnées à partir de la base de données j'ai besoin d'obtenir la distance sera affichée à la fin de chaque enregistrement récupérés.

Example of json: {"details":[{"country":"United States","_id":"3892","lat":"39.954559","lng":"-82.837608","admin_level_1":"Ohio","locale":"Columbus"}]}

C'est qu'il doit être, gardez à l'esprit que la distance n'est pas dans la base de données, il est calculé à la volée.

Example of json: {"details":[{"country":"United States","_id":"3892","lat":"39.954559","lng":"-82.837608","admin_level_1":"Ohio","locale":"Columbus", "distance": "1.2 Mi"}]}

Aucune idée sur la façon d'obtenir sat distance qui est caculcated à être ajouté à la fin de chaque résultat?

        $dbStations->select('lat');
        $dbStations->select('lng');
        $dbStations->select('_id');
        $stations = $dbStations->get('stDetails');
        foreach ($stations->result() as $station) {
            $lat2 = $station->lat;
            $lng2 = $station->lng;
            $stId = $station->_id;
            $distance = $this->distance->gpsdistance($lat1, $lng1, $lat2, $lng2, "M");
                if ($distance <= $rad) {
                //at this point the code has determined that this id is within
                //the preferred distance.
                $stationArr[] = $stId;
            }
        }
            $dbStations->select('country, _id, lat, lng, admin_level_1, locale');
            $dbStations->where_in('_id', $stationArr);
            $stations = $dbStations->get('stationDetails');
        echo json_encode(array('stations' => $stations->result()));
    }

OriginalL'auteur Brandon Wilson | 2011-09-30