Эхо данные из базы в каждый раз получаю - PullRequest
0 голосов
/ 27 сентября 2011

Я отправляю три раза значения 1 & 2 & 3 на jquery.serialize() для $hotel_id в PHP, теперь я хочу получить каждый раз при отправке данных, связанных с $hotel_id (например: 1 или 2 или 3) из базы данных. но в следующем коде я просто получаю данные, которые связаны с последними $hotel_id (3).

Я хочу как:

Первый : получить данные, связанные с 1, и отобразить их в json_encode
Second : (следующие 2) получить данные, связанные с 2, и повторить их в json_encode
Третий : (следующие 3) получить данные, связанные с 3 и echo они в json_encode
...

Это вывод serialize() из кода jQuery:

hotel_id=1&hotel_id=2&hotel_id=3

Это мой php код:

$hotel_id = $this->input->post('hotel_id');
$query_r  = $this->db->query("SELECT * FROM hotel_submits WHERE id LIKE '$hotel_id' ORDER BY id desc");
$data     = array();
foreach ($query_r->result() as $row) {
    $data_s  = json_decode($row->service, true);
    $data_rp = json_decode($row->address, true);
    $data[]  = array(
        'name' => $row->name,
        'star_type' => $row->star . '-' . $row->type,
        'site' => $row->site,
        'service' => $data_s,
        'address' => $row->address
    );
}
echo json_encode($data);

Как мне это сделать?

1 Ответ

2 голосов
/ 27 сентября 2011

Вы не можете передать один и тот же аргумент три раза. Он будет видеть только последний параметр hotel_id, и вы просто получите номер 3. PHP разрешает передавать массивы, называя параметр с [] в конце, как hotel_id [] = 1 & hotel_id [] = 2 и т. Д., А затем вы можете получить массив значений в php. Это означает, что ваше значение $ hotel_id будет массивом значений вместо одного значения. Поскольку это массив, вам нужно добавить массив с запятой для использования в SQL:

$hotel_id = implode(',', $this->input->post('hotel_id'));

Теперь $ hotel_id будет выглядеть как '1,2,3';

Теперь ваш SQL должен будет измениться на:

SELECT * FROM hotel_submits WHERE id IN ($hotel_id) ORDER BY id desc

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...