elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Pasar un array por una función
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar un array por una función  (Leído 4,200 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Pasar un array por una función
« en: 19 Junio 2011, 02:31 am »

Pues tengo algo parecido a esto:

Código
  1. <?php
  2.  
  3. function DatosDeCliente($ID){
  4. include("config.php");
  5. $sql="SELECT * FROM Clientes WHERE ID='".$ID."'";
  6. $resultado = mysql_db_query($db_name, $sql);
  7. $valor = mysql_fetch_array($resultado);
  8. return $valor;
  9. };
  10.  
  11.  
  12. $IDcliente=7;
  13. $valores=DatosDeCliente($IDcliente);
  14.  
  15. echo("Hola, el nombre de ese ID es: ");
  16. echo($valores["nombre"]);
  17.  
  18. ?>


El problema es que no me funciona: $valores["nombre"]
Lo he probado de varias formas y no se como se hace correctamente. (El SQL está bien, si pongo dentro de la funcion $valor["nombre"] si que va genial.

Gracias ^.^


En línea




~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Pasar un array por una función
« Respuesta #1 en: 19 Junio 2011, 05:28 am »

En ese tipo de caso siempre hay que ir testeando y no programar todo de una.

Hazle un

Código
  1. print_r($valores);

Código
  1. <?php
  2.  
  3. function DatosDeCliente($ID){
  4. include("config.php");
  5. $sql="SELECT * FROM Clientes WHERE ID='".$ID."'";
  6. $resultado = mysql_db_query($db_name, $sql);
  7. $valor = mysql_fetch_array($resultado);
  8. return $valor;
  9. };
  10.  
  11.  
  12. $IDcliente=7;
  13. $valores=DatosDeCliente($IDcliente);
  14.  
  15. print_r($valores);
  16.  
  17. ?>
  18.  

Y muestra el resultado.

Saludos.


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #2 en: 19 Junio 2011, 12:33 pm »

El problema es que como tú dices no puedo usar la consulta tipo:

$valores["nombre"]

$valores["Ciudad"]


¿Alguien sabe la solución?
En línea




madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #3 en: 19 Junio 2011, 14:03 pm »

Cambia mysql_fetch_array() por mysql_fetch_assoc().
En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #4 en: 19 Junio 2011, 19:48 pm »

Yo tengo esta pequeña función que hace lo que tu quieres...

Código
  1.   function ejecutarQuery($sql, $retorno = true){
  2.      $conn = abrirConexion();
  3.      try{
  4.         $query = $conn->query( $sql );
  5.         if( $retorno ){
  6.            while( $fila = $query->fetch(PDO::FETCH_BOTH) ){
  7.               $datos[] = $fila;
  8.            }
  9.            cerrarConexion($conn);
  10.            return $datos;
  11.         }else{
  12.            return true;
  13.         }
  14.      }catch( PDOException $ex ){
  15.         print $ex->getMessage();
  16.         return false;
  17.      }
  18.   }

A lo que quedaría como resultado,
Código
  1. $PoC[0] = array(0 => "001", 'codigo' => "001", 2 => "Alex", 'nombre' => "Alex");
  2. $PoC[1] = array(0 => "001", 'codigo' => "001", 2 => "Juan", 'nombre' => "Juan");

« Última modificación: 19 Junio 2011, 19:56 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #5 en: 19 Junio 2011, 20:05 pm »

Cambia mysql_fetch_array() por mysql_fetch_assoc().

Me funcionó genial con esa.

Shell Root gracias por el código. Nunca pensé hacer las consultas a través de una función... muy bueno, que grandre... Una pregunta, no entiendo lo de $retorno=TRUE ¿Me lo explicas?

Gracias.
En línea




Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #6 en: 19 Junio 2011, 20:31 pm »

Es que esa función la uso de forma general. Por ejemplo,
Código
  1. SELECT * FROM usuarios;
Esa consulta obviamente va a retornar unos valores.

Pero si realizo un INSERT o UPDATE no lo hará. Así que le paso por parámetro algo para que no intente devolverme datos cuando no los tiene que devolver. Me entiendes?

PD: Sí lo que estáis preguntando es el seteo de la variable cuando declaro los parámetros, pues es una inicialización de la variable con algún valor por defecto, así a la hora de llamarla no es necesario ponerle ese parámetros porque ya esta predefinido -amenos de que quieras darle otro valor-,

Por ejemplo, es lo mismo decir:
Código
  1. ejecutarQuery($sql);
qué:
Código
  1. ejecutarQuery($sql, true);
« Última modificación: 19 Junio 2011, 20:34 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #7 en: 19 Junio 2011, 21:47 pm »

Anda, no sabía que podías llamar a una función con menos parametros de los que tiene la función.

Muchas gracias :-)
En línea




cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Pasar un array por una función
« Respuesta #8 en: 19 Junio 2011, 22:47 pm »

lo que sucede es que en ese caso la variable tiene un valor por defecto, lo que hace al parámetro opcional y por eso puedes llamar a la función pasándole o no un valor para ese argumento.

saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programacio lisp de funcion que pasa un array a lista
Ejercicios
indiabat 0 3,507 Último mensaje 18 Diciembre 2005, 20:53 pm
por indiabat
Función que devuelva un array (javascript)
Desarrollo Web
Fox_Neo 5 18,083 Último mensaje 13 Diciembre 2010, 15:31 pm
por Fox_Neo
Problema con función de array de 2 dimensiones
Programación C/C++
ZedGe 1 2,092 Último mensaje 26 Mayo 2012, 18:58 pm
por ZedGe
Pasar a función array de punteros.-
Programación C/C++
NOB2014 5 3,474 Último mensaje 22 Enero 2014, 15:44 pm
por NOB2014
Pasar Array de una funcion a otra
Programación C/C++
YDOM 8 3,831 Último mensaje 2 Junio 2014, 01:14 am
por MessageBoxA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines