Martes 19 de Noviembre de 2024, 14:24
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Necesito recorrer un array
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Necesito recorrer un array (Leído 7169 veces)
akiestudio
Miembro activo
Mensajes: 40
Necesito recorrer un array
«
en:
Lunes 30 de Marzo de 2009, 20:16 »
0
Hola, cuando recorro el array solo me devuelve el primer registro , y no todo el contenido del array que es lo que hago mal;
Como puedo hacerlo ,muchas gracias
Código: PHP
----------------------Este es el codigo de las funciones:
<?php
define
(
"odbc_sat_server"
,
"sat_reparaciones_Odbc"
)
;
// Host al que conectar, habitualmente es el ‘localhost’
define
(
"odbc_sat_USER"
,
""
)
;
// Nombre del usuario con permisos para acceder;
define
(
"odbc_sat_PASS"
,
""
)
;
// Contraseña de dicho usuario
define
(
"odbc_sat__bd"
,
"sat-reparaciones"
)
;
// Nombre de la base de datos que se conectara
// Fichero con los datos de conexion a la BBDD
//------------------------------------------
//------------------------------------------
class
cdb
{
private
$conexion
;
private
$resultado
;
public
function
__construct
(
)
{
$conexion
=
0
;
}
public
function
__destruct
(
)
{
$this
->
desconexion
(
)
;
}
public
function
desconexion
(
)
{
if
(
$this
->
conexion
>
0
)
{
odbc_close
(
$this
->
conexion
)
;
$conexion
=
0
;
}
}
public
function
isconect
(
)
{
return
$this
->
conexion
;
}
public
function
consulta
(
$query
)
{
$this
->
resultado
=
odbc_exec
(
$this
->
conexion
,
$query
)
;
if
(
$this
->
resultado
==
false
)
{
return
false
;
}
else
{
return
true
;
}
}
public
function
conexion
(
$odbc_sat_server
,
$odbc_sat_USER
,
$odbc_sat_PASS
)
{
$this
->
conexion
=
odbc_connect
(
$odbc_sat_server
,
$odbc_sat_USER
,
$odbc_sat_PASS
)
;
return
$this
->
isconect
(
)
;
}
public
function
imprimir
(
)
{
$array
=
odbc_fetch_array
(
$this
->
resultado
,
1
)
;
foreach
(
$array
as
$registro
)
{
echo
(
$registro
)
;
}
}
}
;
?>
----------------------Este es el codigo donde llamo a la funciones:
<?php
include
"db.php"
;
$db
=
new
cdb
;
$odbc_sat_server
=
"sat_reparaciones_Odbc"
;
$odbc_sat_USER
=
""
;
$odbc_sat_PASS
=
""
;
$db
->
conexion
(
$odbc_sat_server
,
$odbc_sat_USER
,
$odbc_sat_PASS
)
;
if
(
$db
->
isconect
(
)
>
0
)
{
echo
(
"conectado"
)
;
$sql
=
"select * from clientes"
;
if
(
$db
->
consulta
(
$sql
)
==
true
)
{
echo
(
"consulta correcta"
)
;
$db
->
imprimir
(
)
;
}
else
{
echo
(
"consulta incorrecta"
)
;
}
}
else
{
echo
(
"error de conexion"
)
;
}
?>
Tweet
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #1 en:
Martes 31 de Marzo de 2009, 21:41 »
0
Hasta el momento no he tenido la oportunidad o necesidad , de utilizar PHP con ODBC, pero creo que tu problema esta en
odbc_fetch_array parece que no es la forma correcta de extraer los datos
Este codigo es un ejemplo, no he podido probarlo, pero es mas o menos siguiendo como se hace sin ODBC, puedes buscar ejemplos en la documentacion de php
http://php.net/odbc_fetch_array
Código: PHP
public
function
imprimir
(
)
{
$i
=
1
;
while
(
$array
=
odbc_fetch_array
(
$this
->
resultado
,
$i
)
)
{
++
$i
;
print_r
(
$array
)
;
}
}
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
akiestudio
Miembro activo
Mensajes: 40
Re: Necesito recorrer un array
«
Respuesta #2 en:
Jueves 2 de Abril de 2009, 22:54 »
0
Muchas gracias pero ahora el problema que tengo es que en vez de imprimirlo en la funcion , quiero que esta me retorne el array e imprimir despues de la llamada en la funcion .
public function imprimir()
{
$i = 1;
while ( $array = odbc_fetch_array($this->resultado,$i)){
++$i;
return ($array);
}
}
if ($db->isconect() > 0 )
{
echo("conectado");
$sql = "select * from clientes";
if ($db->consulta( $sql ) == true)
{
echo("consulta correcta");
$db->imprimir();
echo $array
}else
{
echo("consulta incorrecta");
}
Esto asi no funciona , alguien puede ayudarme a retornar un array desde una funcion
gracias
shadow_rev
Miembro MUY activo
Mensajes: 397
Nacionalidad:
Un SPARTAN no muere en combate
Re: Necesito recorrer un array
«
Respuesta #3 en:
Domingo 5 de Abril de 2009, 05:21 »
0
Primero saca el return del while, porque como lo tienes, nada más va a retornar el primer registro.
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas
akiestudio
Miembro activo
Mensajes: 40
Re: Necesito recorrer un array
«
Respuesta #4 en:
Miércoles 15 de Abril de 2009, 14:58 »
0
Muchas gracias , pero no consigo devolver el array , he limpiado un poco el codigo , quiero cargar una lista....este es el nuevo codigo:
Este es el codigo de la clase y la funcion:
<?php
define ( "odbc_sat_server", "sat_reparaciones_Odbc" ); // Host al que conectar, habitualmente es el ‘localhost’
define ( "odbc_sat_USER", "" ); // Nombre del usuario con permisos para acceder;
define ( "odbc_sat_PASS", "" ); // Contraseña de dicho usuario
define ( "odbc_sat__bd", "sat-reparaciones"); // Nombre de la base de datos que se conectara
// Fichero con los datos de conexion a la BBDD
//------------------------------------------
//------------------------------------------
class cdb
{
private $conexion;
private $resultado;
public function __construct()
{
$conexion = 0;
}
public function __destruct()
{
$this->desconexion();
}
// Funcion de sesion
public function desconexion()
{
if ( $this->conexion > 0 )
{
odbc_close( $this->conexion);
$conexion = 0;
}
}
public function isconect()
{
return $this->conexion ;
}
public function consulta( $query )
{
$this->resultado = odbc_exec( $this->conexion, $query);
if ($this->resultado == false)
{
return false;
}else{
return true;
}
}
public function conexion($odbc_sat_server, $odbc_sat_USER, $odbc_sat_PASS)
{
$this->conexion = odbc_connect($odbc_sat_server, $odbc_sat_USER, $odbc_sat_PASS);
return $this->isconect();
}
public function cliente($sql)
{
$arr = array();
$rs = odbc_exec($this->conexion,$sql);
$x = 1;
while (odbc_fetch_row($rs))
{
for ($y = 1; $y <= odbc_num_fields($rs); $y++)
$arr[$x][$y] = odbc_result($rs,$y);
$x++;
}
if ($x > 1)
{
return $arr;
}
}
};
?>
Este es el codigo donde quiero cargar los datos en la lista:
<html>
<head>
<title>Ejemplo de Funcion y conexion a BBDD</title>
</head>
<body>
<H1>Ejemplo de uso de bases de datos con PHP y MySQL con FUNCIONES</H1>
<select name = "APELLIDOS">
<?php
include "db.php";
$db = new cdb;
$odbc_sat_server = "sat_reparaciones_Odbc";
$odbc_sat_USER= "";
$odbc_sat_PASS= "";
$db->conexion($odbc_sat_server, $odbc_sat_USER, $odbc_sat_PASS);
$arr=$db->cliente("SELECT CLIENTE FROM CLIENTES");
?>
<option value ="<?php echo $db->cliente()?>"<?php echo $db->cliente()?></option>
<?
echo $arr[1][2];//AQUI SI CONSIGO MOSTRAR DATOS ,Solo un registro . .el unico que solicito
?>
</select>
</table>
</body>
</html>
Muchas gracias a ver si alguien me resuelve la duda
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #5 en:
Miércoles 15 de Abril de 2009, 16:50 »
0
Necesitas imprimir el arreglo correctamente, ademas te falta la etiqueta <select>
Código: PHP
$db->conexion($odbc_sat_server, $odbc_sat_USER, $odbc_sat_PASS);
$arr=$db->cliente("SELECT CLIENTE FROM CLIENTES");
?>
<select name='clientes'>
<?php
for
(
$i
=
0
;
$i
<
count
(
$arr
)
;
$i
++
)
?>
<option value ="
<?php
echo
$arr
[
0
]
[
$i
]
;
?>
">
<?php
echo
$arr
[
0
]
[
$i
]
;
?>
</option>
<?php
}
?>
</select>
Otro detalle cuando publiques codigo, utiliza las etiquetas
[CODE][/b] para que sea mas entendible
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
akiestudio
Miembro activo
Mensajes: 40
Re: Necesito recorrer un array
«
Respuesta #6 en:
Jueves 16 de Abril de 2009, 14:49 »
0
Muchas gracias pero no funcionas, cuando cargo la pagina , se queda pensando y por mas que he probado no se como recorrer el array ...adenas tambien daba un error que no reconoce el indice
arr[0] ,
muchas gracias
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #7 en:
Jueves 16 de Abril de 2009, 15:29 »
0
Entonces inicia en 1
Código: PHP
$db->conexion($odbc_sat_server, $odbc_sat_USER, $odbc_sat_PASS);
$arr=$db->cliente("SELECT CLIENTE FROM CLIENTES");
?>
<select name='clientes'>
<?php
for
(
$i
=
0
;
$i
<
count
(
$arr
)
;
$i
++
)
?>
<option value ="
<?php
echo
$arr
[
1
]
[
$i
]
;
?>
">
<?php
echo
$arr
[
1
]
[
$i
]
;
?>
</option>
<?php
}
?>
</select>
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
akiestudio
Miembro activo
Mensajes: 40
Re: Necesito recorrer un array
«
Respuesta #8 en:
Viernes 17 de Abril de 2009, 16:05 »
0
Me sigue recuperando solo la primera fila , no me devuelve todas las filas , y la tabla tiene mas de una fila ....¿Puede que el problema este en la funcion? ,no se como solucionar el problema
talcual
Nuevo Miembro
Mensajes: 17
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #9 en:
Lunes 20 de Abril de 2009, 05:46 »
0
los arrays se recorren con los foreach no con los while pero tambien se puede jajajaj saludos
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #10 en:
Lunes 20 de Abril de 2009, 12:18 »
0
imprime lo que te devuelva la funcion
Código: PHP
$arr
=
$db
->
cliente
(
"SELECT CLIENTE FROM CLIENTES"
)
;
echo
"<pre>"
;
print_r
(
$arr
)
;
echo
"</pre>"
;
El problema puede estar con el count, fiajate que te imprime
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
akiestudio
Miembro activo
Mensajes: 40
Re: Necesito recorrer un array
«
Respuesta #11 en:
Martes 21 de Abril de 2009, 12:33 »
0
Al poner el codigo que me diste sale esto;
Código: PHP
Array
(
[
1
]
=>
Array
(
[
1
]
=>
Juan
)
[
2
]
=>
Array
(
[
1
]
=>
jojo
)
)
Pero cuando quito el count del for me da el error:
Undefined Ofsset en la linea de codigo:
<option value ="<?php echo $arr[1][$i]; ?>"><?php echo $arr[1][$i];?></option>
gracias
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Necesito recorrer un array
«
Respuesta #12 en:
Martes 21 de Abril de 2009, 15:10 »
0
Prueba de esta manera
Código: PHP
<select name='clientes'>
<?php
foreach
(
$arr
as
$idx
=>
$valor
)
{
?>
<option value ="
<?php
echo
$valor
;
?>
">
<?php
echo
$valor
[
1
]
;
?>
</option>
<?php
}
?>
</select>
$valor[
1
] , el 1 seria como el 'campo' si visualizamos la matriz como una tabla
Array ( 1 => Array (
1
=> 'Juan' ,2=>'Lopez' ), 2 => Array (
1
=> 'jojo',2=>'dos' ));
Si quisiera otra posicion de la fila, solo habria que cambiarlo
$valor[
2
]
Array ( 1 => Array ( 1 => 'Juan' ,
2
=>'Lopez' ), 2 => Array ( 1 => 'jojo',
2
=>'dos' ));
y asi sucesivamente
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Necesito recorrer un array