Foros del Web » Programando para Internet » PHP »

error al crear una funcion

Estas en el tema de error al crear una funcion en el foro de PHP en Foros del Web. Hola estoy haciendo un portal en PHP, y quiero crear un fichero php con funciones que accedan a la BD y me da error... Tengo ...
  #1 (permalink)  
Antiguo 30/11/2008, 18:40
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
error al crear una funcion

Hola
estoy haciendo un portal en PHP,
y quiero crear un fichero php con funciones que accedan a la BD y me da error...
Tengo esta fichero de prueba:

Código PHP:
<?php

include ("config.php");

function 
hola() {
    
$consulta "select * from recetas";
    
$receta=mysql_query($consulta$link);


    if (
$res_recetas mysql_fetch_array($receta)){
    
        
$result $res_recetas['titulo'];

    }
    return 
$result;
    }
$aux hola();
echo (
$aux);
?>
y me dá este error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/IG31/al073568/public_html/update.php on line 7

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/IG31/al073568/public_html/update.php on line 10


Si escribo el código de la función fuera de function () {....} lo hace correcto y muestra el título de la receta por pantalla.
¿Por qué es esto? Lo de MySQL-Link .....si es el mismo enlace a la BD en todas las páginas y funciona...desde dentro de una función no puedo hacer esto??? :(
  #2 (permalink)  
Antiguo 30/11/2008, 18:45
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: error al crear una funcion

Yo supongo que en archivo config.php tienes la conexión a la base de datos y haces algo así:

$link = mysql_connect(....

Pues bien, no hagas eso, no coloques la variable $link y tampoco aquí

$receta=mysql_query($consulta, $link);

PHP asume que la consulta se realizará en base a la última conexión hecha, así que no hace falta esa variable. No estoy seguro que sea eso, pero prueba, yo siempre lo hago así, la conexión en otro archivo y me resulta bien siempre.
  #3 (permalink)  
Antiguo 30/11/2008, 20:23
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 9 meses
Puntos: 18
Respuesta: error al crear una funcion

En realidad el problema vendría siendo por el hecho de que dentro de la función $link no tiene dato alguno.

Las variables dentro de una función funcionan dentro de esa función, y las que se definen fuera de la función, a menos que se pasen como un parámetro a la función o la variable necesitada se defina como variable global, no se podrán utilizar dentro de la función.

Una forma de solucionarlo sería entonces utilizar el código así:
Código PHP:
include ("config.php"); 

function 
hola($link) { 
    
$consulta "select * from recetas"
    
$receta=mysql_query($consulta$link); 


    if (
$res_recetas mysql_fetch_array($receta)){ 
     
        
$result $res_recetas['titulo']; 

    } 
    return 
$result
    } 
$aux hola(&$link); 
echo (
$aux); 
Con ello, pasando la variable $link como parámetro a la función ya podrá ser utilizada en mysql_query

No obstante, Eljavista tiene razón al decir que el definir el enlace a utilizar al hacer consultas con mysql_query no es necesario, como dijo Eljavist, php utilizará el enlace de la última conexión establecida.
__________________
Usuario Reigistrado de linux #399288
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 21:51.