Codeigniter - Mostrar un select form de una consulta realizada.

   
Vista:
Imágen de perfil de Alfredo

Mostrar un select form de una consulta realizada.

Publicado por Alfredo (2 intervenciones) el 26/07/2017 00:24:55
Buen dia, tengo una consulta en un modelo que me arroja un arreglo, quiero ese arreglo mostrarlo en un formulario. La consulta es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
function get_customers() {
 
	$this->db->select('customers.*,
		people.first_name as customerName,
		people.last_name as customerLast
		') ;
	$this->db->from('customers') ;
	$this->db->join('people', 'people.person_id = customers.person_id' , 'left');
 
	return $this->db->get();
}

Y almaceno en una variable customers pero no se como listarlo en un select:
1
2
3
4
5
6
7
<?php $customers = $this->Repair->get_customers() ; ?>
<select name="customer">
<?php foreach ($customers as $customer_row) {
        echo "<option>".H$customer->customerName."</option>" ;
}
?>
</select>

Pero no me muestra nada, mas que un error

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: repairs/form_new.php

Line Number: 34

Imprimi el arreglo y me sale esto:

1
print_r($customers) ;

CI_DB_mysql_result Object ( [conn_id] => Resource id #72 [result_id] => Resource id #146 [result_array] => Array ( ) [result_object] => Array ( ) [custom_result_object] => Array ( ) [current_row] => 0 [num_rows] => 210 [row_data] => )

Y si estan los 210 clientes, porque si uso first_row() me imprime esto:

1
print_r($customers->first_row()) ;

stdClass Object ( [person_id] => 3 [account_number] => [company_name] => [balance] => 0.0000000000 [taxable] => 1 [cc_token] => [cc_preview] => [card_issuer] => [tier_id] => 2 [deleted] => 1 [customerName] => CLIENTE 1 [customerLast] => )

Alguien me puede ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Mostrar un select form de una consulta realizada.

Publicado por kip (21 intervenciones) el 26/07/2017 00:49:27
Hola, el problema es que estas retornando el metodo get() que es el objeto de conjunto de resultados que contiene los metodos para analizar o acceder a estos, si quieres retornar los datos debes hacerlo asi:

1
return ($this->db->get())->result();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfredo

Mostrar un select form de una consulta realizada.

Publicado por Alfredo (2 intervenciones) el 26/07/2017 01:04:09
Si, estabas en lo cierto, la consulta no la modifique porque es probable que ocupe los datos del resultado de la consulta. En mi vista ocupe lo siguiente:

1
2
3
4
5
6
7
8
9
10
<select>
<?php
 
$customers = $this->Repair->get_customers() ;
foreach ($customers->result() as $row) {
	echo "<option>".$row->customerName."</option><br>";
}
 
?>
</select>

Agradezco su tiempo. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad