Bem estou utilizando CodeIgniter
e, criei uma Query
para pegar 3 valores aleatórios do banco de dados e depois transformei em Json
, porém, na hora aparece somente um valor:
Observação: no meu sistema é gerar 3 perguntas aleatórias.
Meu foreach
$resultado=$this->db->query('SELECT pergunta FROM perguntas ORDER BY RAND() LIMIT 3');
foreach ($resultado->result() as $linha) {
return $linha;
}
A conversão para JSON
$resultado = $this->Model_gcm->get_all();
// print_r($resultado);
echo json_encode($resultado);
RESULTADO:
{
pergunta: "essa é uma pergunta aleatória 2?"
}
Realmente, a sua instrução dentro do foreach
, faz um return
na primeira interação ele sai da execução retornando apenas uma linha.
Está assim:
$resultado=$this->db->query('SELECT pergunta FROM perguntas ORDER BY RAND() LIMIT 3');
foreach ($resultado->result() as $linha) {
return $linha;
}
Coloque assim:
$resultado=$this->db->query('SELECT pergunta FROM perguntas ORDER BY RAND() LIMIT 3');
return $resultado->result_array();
Depois o outro código está correto, continue da mesma forma!
Nesse caso especifico não precisa de um foreach
, porque a informação já vem formatada!
1 curtida
Muito obrigado, quando eu chamava o result_array, eu não estava tentando concatenar com a variavel resultado dentro do foreach, ai ficava tipo assim:
foreach ($resultado->result_array() as $linha) {
return $linha;
}