Foros del Web » Programando para Internet » PHP »

problema con function y mysqli

Estas en el tema de problema con function y mysqli en el foro de PHP en Foros del Web. Buen día amigos, pues tengo un problema, resulta que creo varias funciones en un archivo entre ellas una que llena un combo con datos de ...
  #1 (permalink)  
Antiguo 13/07/2012, 10:56
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Desacuerdo problema con function y mysqli

Buen día amigos, pues tengo un problema, resulta que creo varias funciones en un archivo entre ellas una que llena un combo con datos de la base, pero al mandar llamar la función en otro archivo, me marca un warnning y sólo aparece el combo, de hecho todas mis funciones marcan error

Cita:
Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /home/u708354979/public_html/system/includes/aphp/cnn.php on line 7

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /home/u708354979/public_html/system/includes/aphp/cnn.php on line 7
mi código de conexión es el siguiente

Código PHP:
include('datos_con.inc.php');
function 
open() {
    
//Realiza la conexión con el servidor.
    
$con mysqli_connect($h$u$p) or die (mysqli_error($con));
    
mysqli_select_db($con'mi_bd') or die (mysqli_error($con));
}

Función que cierra la conexión.
function 
close() {
    
mysqli_close($con);

mi codigo para el combo es este

Código PHP:
function getDatos() {

       
open();
    
//Ejecuta el query.
    
$resultmysqli_query($con'SELECT id, usuario FROM usuarios');
       
close();

    echo 
'<select name="usuario">';
    echo 
'<option value="0">Elige una opci&oacute;n...</option>';
    while (
$rs mysqli_fetch_assoc($result)) :
        echo 
'<option value="' $rs['id'] . '">' $rs['usuario'] . '</option>';
    endwhile;
    echo 
'</select>';


El problema es con mysqli, porque con mysql funcionaban bien, pero cuándo cambié a mysqli, todas las funciones comenzaron a tronar y ahora no puedo mandar llamar a ninguna.
Si alguien pudiese ayudarme, lo agradecería, saludos.
  #2 (permalink)  
Antiguo 13/07/2012, 11:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: problema con function y mysqli

Pues dentro de tu función open() estás usando variables que no defines en ningún lado: $h, $u y $p.

No me sorprendería lo del error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/07/2012, 11:45
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con function y mysqli

ammm de hecho si te das cuenta, tengo un archivo incluido, en ese archivo tengo mis variables declaradas.
  #4 (permalink)  
Antiguo 13/07/2012, 11:49
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con function y mysqli

y de hecho ahora caigo con eso, el include bebe ir dentro de la función, pero me sigue sin mostrar resultados con mysqli...sólo me funciona si pongo el codigo del combo en el archivo donde llamaría a la funcion getDatos nada más...
  #5 (permalink)  
Antiguo 13/07/2012, 13:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: problema con function y mysqli

Lee sobre variables globales, en PHP necesitas usar el operador global para que puedas leer la variable dentro de tus funciones.

Saludos.
  #6 (permalink)  
Antiguo 13/07/2012, 13:38
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con function y mysqli

amm sí, lo que pasa es que el problema no es el que no lea las variables, en realidad, el problema es que al llamar mi función getDatos(); en otro archivo, me marca un warnning (que olvidé poner) que dice que la función esperaba 2 parametros, lo de la conexión ya lo solucioné, pero al pintar mi combo con los datos de la base, sólo se ve el combo con la opción por defecto que es la de elige una opción y no me trae los registros y si pongo el codigo como tal en el archivo donde debería ir la función nada más, sí hace todo bien...


Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/u708354979/public_html/system/includes/aphp/func.php on line 37
  #7 (permalink)  
Antiguo 13/07/2012, 13:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: problema con function y mysqli

Repito, lee sobre variables globales, las variables que defines en una función no se comparten con otra función de forma nativa.
  #8 (permalink)  
Antiguo 16/07/2012, 10:18
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con function y mysqli

Gracias a GatorV, por darme el tip, ya pude con lo de la conexión a bd y mi función, funciona perfecto...
pero ahora me marca error al llamar un sp y tratar de extraer datos de él con mysqli_fetch_assoc... :C

Cita:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/u708354979/public_html/system/includes/aphp/login.php on line 29
creen que puedan ayudarme!???

mi código es el siguiente...

Código PHP:
$con open();

    
$sql "CALL sp_datos('" $lg "')";
    
$result mysqli_query($con$sql);
    
close();

    
$ar mysqli_fetch_assoc($result);
        echo 
$ar['log']; 
  #9 (permalink)  
Antiguo 16/07/2012, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: problema con function y mysqli

Si haces close antes de, se va a perder la conexión, ahora para ver la razón, verifica el valor de mysqli_error.
  #10 (permalink)  
Antiguo 16/07/2012, 12:28
 
Fecha de Ingreso: julio-2012
Ubicación: México
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con function y mysqli

WOW!!!

Ya hice un 'debug' con el
Código PHP:
mysqli_error() 
y funciona perfecto, era un problema con la selección de base de datos, lo de cerrar la conexión me ha funcionado bien...ese no era el problema, en realidad era la selección de bd...gracias amigo...saludos...pongo mi código por si a alguien le pasa algo así...

Código PHP:
$con open(); //abro conexion

    //asigno string a variable
    
$sql "CALL sp_sesion('" $log "')";
    
$result mysqli_query($con$sql) or die (mysqli_error($con));
    
//mysqli_close($exec_select); //Cierra la conexión.
    
close();
        
        
$array mysqli_fetch_assoc($result);

        echo 
$array['usuario']; 
Gracias a GatorV, Saludos, me ha funcionado tu ayuda! :D

Etiquetas: function, html, mysql, mysqli, sql, usuarios
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 07:05.