Foros del Web » Programando para Internet » PHP »

Problema con quey dentro de function

Estas en el tema de Problema con quey dentro de function en el foro de PHP en Foros del Web. tengo el siguitene codigo y cuando lo paso dentro de una funcion...simplemente no funciona....alguna idea amigo? Código PHP: //esto funciona  $verestaarea = 23 ; $sql = ...
  #1 (permalink)  
Antiguo 09/12/2003, 00:51
 
Fecha de Ingreso: febrero-2002
Ubicación: Molina - Chile
Mensajes: 27
Antigüedad: 22 años, 2 meses
Puntos: 0
Exclamación Problema con quey dentro de function

tengo el siguitene codigo y cuando lo paso dentro de una funcion...simplemente no funciona....alguna idea amigo?

Código PHP:
//esto funciona 

$verestaarea=23;
$sql="select * from mipagina_categoria where id = '$verestaarea'";
$resultado=mysql_query($sql,$link)or die(mysql_error());
while(
$row mysql_fetch_array($resultado)) {
$id=$row["id"];
$area=$row["area"];

echo
"EL area es: $area";

pero esto no funciona

Código PHP:
//esto no funciona 

function verarea($num){

$sql="select * from mipagina_categoria where id = '$num'";
$resultado=mysql_query($sql,$link)or die(mysql_error());
while(
$row mysql_fetch_array($resultado)) {
$id=$row["id"];
$area=$row["area"];

echo
"EL area es: $area";
}


}

//ahora trato de tomar el resultado ..pero no funciona

verarea("49");

/*
me arroja el mensaje :Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource 
*/ 
Por favor ayudenme..me tiene loko.... y OJO no es problema de conexion con la DB.....
__________________
:adios::adios:WWW.MIPAGINA.CL:adios: :adios:
Directorio de links a sitios de Chile y el mundo
  #2 (permalink)  
Antiguo 09/12/2003, 00:57
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Lemus,

Tú indicas no ser problema de conexión con la BD, pero yo intentaría realizar lo mismo, con una reconexión dentro de la función. Es decir, tratando de colocar el código que "abre" la conexión hacia la BD en la función... puede estar perdido al ser ahora un llamado a una función.

Espero ayude.

MAC.
__________________
Saludos,

MAC
  #3 (permalink)  
Antiguo 09/12/2003, 01:01
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 20 años, 6 meses
Puntos: 0
Es decir, algo como esto dentro de la función...


function verarea($num){

$Database = "nombre_base";

$sql="select * from mipagina_categoria where id = '$num'";
$resultado=mysql_query($Database, $sql,$link)or die(mysql_error());
while($row = mysql_fetch_array($resultado)) {
....

Saludos,
__________________
Saludos,

MAC
  #4 (permalink)  
Antiguo 09/12/2003, 01:18
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
umm, el problema no es realizar otra conexion a la base de datos dentro de la funcion... no hace falta,,, lo unico que tienes que incluir los datos de conexion a la base de datos en la funcion.... osea las variables, host, name, pass, name_bd

mira mi funcion... y veras como meto todas las variables que necesito para que funcione...

Código PHP:
    function  FUNC_InfoMsg($nInfo,$textInfo,$sql_host,$sql_usuario,$sql_pass,$sql_db,$sql_tabla_sucesos,$ip_real,$bodyBgColor){//    FUNC_Confirma(1,$langConfirma1,$sql_host,$sql_usuario,$sql_pass,$sql_db,$sql_tabla_sucesos,$ip_real);
            
for ($generaInfoAuto=1;$generaInfoAuto<21+1;$generaInfoAuto++) {//genero funcion confirmaciones dinamica con un bucle
                
switch ($nInfo){
                case 
$generaInfoAuto$this->Info $textInfo; break;
                default: 
$this->Info $textInfo; break;
                }
//salgo del swhtch
            
}//salgo del for
        
mysql_query("INSERT INTO $sql_tabla_sucesos values('','$textInfo',NOW(),'$_SESSION[usuario_login]','$ip_real')") or die("MySQL dice: ".mysql_error());
echo <<< HTML
<body bgcolor="$bodyBgColor">
<SCRIPT> alert("$this
->Info"); </SCRIPT>
HTML;


saludos....

pd:

Código PHP:
<?php
function verarea($num,$host_Mysql,$user_Mysql,$pass_Mysql,$name_Bd_Mysql){

    
$sql "select * from mipagina_categoria where id='$num'";
    
$resultado mysql_query($sql,$link)or die(mysql_error());
        while(
$row mysql_fetch_array($resultado)) {
            
$id $row["id"];
            
$area $row["area"];

            echo
"EL area es: $area";
        }
//fin while
        
}//fin function
?>

__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 09/12/2003 a las 01:22
  #5 (permalink)  
Antiguo 09/12/2003, 02:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El "problema" es el ambito de las variables. No se puede acceder directamente desde dentro de una funcion a una variable creada fuera de esa funcion. Mas info en http://www.php.net/manual/en/languag...bles.scope.php

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 09/12/2003, 10:24
 
Fecha de Ingreso: febrero-2002
Ubicación: Molina - Chile
Mensajes: 27
Antigüedad: 22 años, 2 meses
Puntos: 0
De acuerdo

Gracias a todos ,el problema ya lo he resuelto y claro es como lo dice Josemi es por el ambito de las variable no se puden tomar sus valores si fueron credas fuera de la function.....muchas gracias a todos....
__________________
:adios::adios:WWW.MIPAGINA.CL:adios: :adios:
Directorio de links a sitios de Chile y el mundo
  #7 (permalink)  
Antiguo 09/12/2003, 15:07
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
umm, me dices que esto no funciona?

Código PHP:
<?php

$host_Mysql 
"";
$user_Mysql "";
$pass_Mysql "";
$name_Bd_Mysql "";

function  
verarea($num,$host_Mysql,$user_Mysql,$pass_Mysql,$name_Bd_Mysql){

    
$sql "select * from mipagina_categoria where id='$num'";
    
$resultado mysql_query($sql,$link)or die(mysql_error());
        while(
$row mysql_fetch_array($resultado)) {
            
$id $row["id"];
            
$area $row["area"];

            echo
"EL area es: $area";
        }
//fin while
        
}//fin function
?>
ummm, yo digo que si
__________________
3w.valenciadjs.com
3w.laislatv.com
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 19:10.