Pasar un array por una función

Iniciado por dimitrix, 19 Junio 2011, 02:31 AM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

Pues tengo algo parecido a esto:

Código (php) [Seleccionar]
<?php

function DatosDeCliente($ID){
include("config.php");
$sql="SELECT * FROM Clientes WHERE ID='".$ID."'";
$resultado mysql_db_query($db_name$sql);
$valor mysql_fetch_array($resultado);
return $valor;
};


$IDcliente=7;
$valores=DatosDeCliente($IDcliente);

echo(
"Hola, el nombre de ese ID es: ");
echo(
$valores["nombre"]);

?>



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 ^.^




~ Yoya ~

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

Hazle un

Código (php) [Seleccionar]
print_r($valores);

Código (php) [Seleccionar]
<?php
 
function DatosDeCliente($ID){
include("config.php");
$sql="SELECT * FROM Clientes WHERE ID='".$ID."'";
$resultado mysql_db_query($db_name$sql);
$valor mysql_fetch_array($resultado);
return $valor;
};
 
 
$IDcliente=7;
$valores=DatosDeCliente($IDcliente);
 
print_r($valores);
 
?>



Y muestra el resultado.

Saludos.
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

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

$valores["nombre"]

$valores["Ciudad"]


¿Alguien sabe la solución?




madpitbull_99

Cambia mysql_fetch_array() por mysql_fetch_assoc().



«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

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

Código (php) [Seleccionar]
   function ejecutarQuery($sql, $retorno = true){
      $conn = abrirConexion();
      try{
         $query = $conn->query( $sql );
         if( $retorno ){
            while( $fila = $query->fetch(PDO::FETCH_BOTH) ){
               $datos[] = $fila;
            }
            cerrarConexion($conn);
            return $datos;
         }else{
            return true;
         }
      }catch( PDOException $ex ){
         print $ex->getMessage();
         return false;
      }
   }


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


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

dimitrix

Cita de: madpitbull_99 en 19 Junio 2011, 14:03 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.




Shell Root

#6
Es que esa función la uso de forma general. Por ejemplo,
Código (sql) [Seleccionar]
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 (php) [Seleccionar]
ejecutarQuery($sql);
qué:
Código (php) [Seleccionar]
ejecutarQuery($sql, true);
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

dimitrix

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

Muchas gracias :-)




cassiani

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!