Foros del Web » Programando para Internet » PHP »

Problema con una consulta a BBDD en una función

Estas en el tema de Problema con una consulta a BBDD en una función en el foro de PHP en Foros del Web. Hola, Estoy intentando realizar un consulta a una BBDD con el siguiente código pero me da error: Código PHP: function  precio_temporada (){                  $resultado = ...
  #1 (permalink)  
Antiguo 02/07/2007, 02:21
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Problema con una consulta a BBDD en una función

Hola,

Estoy intentando realizar un consulta a una BBDD con el siguiente código pero me da error:

Código PHP:
function precio_temporada(){
                
$resultado=mysql_db_query("$db","SELECT * FROM tabla WHERE lugar='madrid'");
                
$fila=mysql_fetch_array($resultado);
                
                echo 
"Total: " $fila['tarifa'];
            }
precio_temporada(); 
Si lo realizo fuera de la función se ejecuta bien, pero cuando se realiza dentro de la función sólo aparece: "Total: ".
¿Alguno me puede echar una mano?

Muchas Gracias
  #2 (permalink)  
Antiguo 02/07/2007, 06:16
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 18 años, 10 meses
Puntos: 6
Re: Problema con una consulta a BBDD en una función

¿Qué variable es "$db"? Si es una variable global, la tienes que declarar como tal en tu función. Además, creo que la conexión a la BD es de tipo resource y por tanto no le deberías poner las comillas.
  #3 (permalink)  
Antiguo 02/07/2007, 06:27
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Problema con una consulta a BBDD en una función

Cita:
Iniciado por juanfuentes Ver Mensaje
¿Qué variable es "$db"? Si es una variable global, la tienes que declarar como tal en tu función. Además, creo que la conexión a la BD es de tipo resource y por tanto no le deberías poner las comillas.
$db es la base de datos de la que toma el valor.
¿Como podría declarar esas variables como globales?
¿Sería conveniente hacer eso?
  #4 (permalink)  
Antiguo 02/07/2007, 06:30
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Problema con una consulta a BBDD en una función

Cita:
Iniciado por yazo Ver Mensaje
$db es la base de datos de la que toma el valor.
¿Como podría declarar esas variables como globales?
¿Sería conveniente hacer eso?
Sí, ya que no está definida dentro de la función. O al menos creo que sí.

Ah, y no uses comillas para escribir variables.


Código PHP:
"$db"

Código PHP:
$db
  #5 (permalink)  
Antiguo 02/07/2007, 06:37
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Problema con una consulta a BBDD en una función

Muchas gracias por vuestras respuestas

¿En lo referente a la variable global como la puedo crear? mejor dicho ¿Como puedo acceder a esa variable desde dentro de la función?

Lo he conseguido cambiando $db por $GLOBALS["db"] dentro de la función.
¿Esto es correcto o hay alguna forma más correcta de hacerlo?
Gracias

Última edición por yazo; 02/07/2007 a las 06:46
  #6 (permalink)  
Antiguo 02/07/2007, 06:46
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Problema con una consulta a BBDD en una función

Cita:
Iniciado por yazo Ver Mensaje
Muchas gracias por vuestras respuestas

¿En lo referente a la variable global como la puedo crear? mejor dicho ¿Como puedo acceder a esa variable desde dentro de la función?
Código PHP:
//Fuera de la funcion la tienes definida
$db "bla bla bla";

function 
precio_temporada(){

//Dentro de la funcion la cargas como global
global $db;

 
$resultado=mysql_db_query($db,"SELECT * FROM tabla WHERE lugar='madrid'");
                
$fila=mysql_fetch_array($resultado);
                
                echo 
"Total: " $fila['tarifa'];
            }
precio_temporada(); 
  #7 (permalink)  
Antiguo 02/07/2007, 08:49
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Problema con una consulta a BBDD en una función

OK, muchas gracias, todo solucionado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.