Foros del Web » Programando para Internet » PHP »

Error con la conexión al verificar el usuario antes de agregar

Estas en el tema de Error con la conexión al verificar el usuario antes de agregar en el foro de PHP en Foros del Web. Buenas noches! escribo en esta oportunidad porque hay una función que estoy utilizando para verificar que existe el usuario antes de agregar el usuario pero ...
  #1 (permalink)  
Antiguo 25/01/2015, 18:24
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Error con la conexión al verificar el usuario antes de agregar

Buenas noches! escribo en esta oportunidad porque hay una función que estoy utilizando para verificar que existe el usuario antes de agregar el usuario pero me sale 2 errores pero no entiendo el porque no me funciona, este es el código que estoy utilizando para conectarme:

conexion.php
Código PHP:
$bd_usuario='root';
    
$bd_pass='';
    
$bd_servidor='localhost';
    
$bd_nombre='bd';
    
    
$conexion=new mysqli($bd_servidor,$bd_usuario,$bd_pass,$bd_nombre) or die('Fallo la conexión'); 
y en otro archivo tengo esta función:
libreria.php
Código PHP:
function Existe()
    {
        
$numargs=func_num_args();
        
$arg_list=func_get_args();
        
$num_campos=$arg_list[0];
        
$sql="SELECT * FROM $arg_list[1] WHERE ";
        for(
$i=2;$i<=$num_campos+2;$i++)
        {
            
$sql.="$arg_list[$i]=";
            
$i++;
            
$sql.="'$arg_list[$i]' AND ";
        }
        
$sql[strlen($sql)-1]=" ";
        
$sql[strlen($sql)-2]=" ";
        
$sql[strlen($sql)-3]=" ";
        
$sql[strlen($sql)-4]=" ";
        
$sql=trim($sql);
        
$sql.=";";
        
$consul=$conexion->query($sql);
        if(
$consul)
        {
            
$num=$consul->num_rows;
            if(!empty(
$num))
                return 
true;
            unset(
$num);
        }
        return 
false;
    } 
la llamo desde este archivo agregarUsuario.php
Código PHP:
if(Existe(1,"censodemografico","Cedula",$cedula_txt))
                    {
                        
$error=true;
                        echo 
"La cédula ya existe";
                    } 
Estos son los errores que me sale:
Código:
Notice: Undefined variable: conexion in C:\xampp\htdocs\backend\include\libreria.php on line 53

Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\backend\include\libreria.php on line 53
pareciera que no me toma la variable conexión como hago para que reconozca la variables.

De antemano agradezco su ayuda.
  #2 (permalink)  
Antiguo 25/01/2015, 19:40
Avatar de jsstoni  
Fecha de Ingreso: enero-2015
Ubicación: Maracaibo
Mensajes: 82
Antigüedad: 9 años, 3 meses
Puntos: 4
Respuesta: Error con la conexión al verificar el usuario antes de agregar

el bojecto $conexion no se encuentra ningun momento su llamada dentro de la funcion.

por lo que recomiendo que uses POO

Código PHP:
Ver original
  1. <?php
  2. class poo {
  3. public $conexion;
  4. public function __construct() {
  5.     $bd_usuario='root';
  6.     $bd_pass= '';
  7.     $bd_servidor='localhost';
  8.     $bd_nombre='bd';
  9.     $this->conexion=new mysqli($bd_servidor,$bd_usuario,$bd_pass,$bd_nombre) or die('Fallo la conexión');  
  10. }
  11. public function Existe()
  12.     {
  13.         $numargs=func_num_args();
  14.         $arg_list=func_get_args();
  15.         $num_campos=$arg_list[0];
  16.         $sql="SELECT * FROM $arg_list[1] WHERE ";
  17.         for($i=2;$i<=$num_campos+2;$i++)
  18.         {
  19.             $sql.="$arg_list[$i]=";
  20.             $i++;
  21.             $sql.="'$arg_list[$i]' AND ";
  22.         }
  23.         $sql[strlen($sql)-1]=" ";
  24.         $sql[strlen($sql)-2]=" ";
  25.         $sql[strlen($sql)-3]=" ";
  26.         $sql[strlen($sql)-4]=" ";
  27.         $sql=trim($sql);
  28.         $sql.=";";
  29.         $consul=$this->conexion->query($sql);
  30.         if($consul)
  31.         {
  32.             $num=$consul->num_rows;
  33.             if(!empty($num))
  34.                 return true;
  35.             unset($num);
  36.         }
  37.         return false;
  38.     }
  39. }
  40.  
  41.  
  42. //test de CLASE
  43.  
  44. $clase = new poo();
  45. if($clase->Existe(1,"censodemografico","Cedula",$cedula_txt)) {
  46.  $error=true;
  47. echo "La cédula ya existe";
  48. }
  49. ?>
__________________
Desarrollo web Front End Realtime NodeJs
  #3 (permalink)  
Antiguo 26/01/2015, 06:26
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error con la conexión al verificar el usuario antes de agregar

Hola jsstoni gracias por responderme, lo voy a probar, ahora una duda esa conexión la llamo en otro archivo también, en ese caso para que me funcione en el otro archivo debo de llamarla así:
$objClase = new poo(); ?

Saludos.
  #4 (permalink)  
Antiguo 26/01/2015, 09:18
Avatar de jsstoni  
Fecha de Ingreso: enero-2015
Ubicación: Maracaibo
Mensajes: 82
Antigüedad: 9 años, 3 meses
Puntos: 4
Respuesta: Error con la conexión al verificar el usuario antes de agregar

Cita:
Iniciado por plitre_sys19 Ver Mensaje
Hola jsstoni gracias por responderme, lo voy a probar, ahora una duda esa conexión la llamo en otro archivo también, en ese caso para que me funcione en el otro archivo debo de llamarla así:
$objClase = new poo(); ?

Saludos.
primero creo que estas programando de forma funcional y no POO, te recomiendo que leas sobre programacion orientada a objectos...

Código PHP:
Ver original
  1. <?php
  2. class nuevaClase extends app {
  3. public function buscar() {
  4. $this->conexion->query("SELECT * FROM BUSCAR");
  5. }
  6. }
  7. ?>

http://www.phpya.com.ar/poo/
__________________
Desarrollo web Front End Realtime NodeJs
  #5 (permalink)  
Antiguo 26/01/2015, 11:12
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error con la conexión al verificar el usuario antes de agregar

Cita:
Iniciado por jsstoni Ver Mensaje
primero creo que estas programando de forma funcional y no POO, te recomiendo que leas sobre programacion orientada a objectos...
Sii no lo estaba haciendo, queria hacerlo funcional pero veo que más recomendable es POO, tenia otro archivo con una tabla que estaba trabajando con el jquery datatables y a ese le colocaba la conexión otra vez.

Aunque creo que la función de Existe si esta bien en POO, o no? porque lo busco es que en una sola función haga todo los select, con solo pasar los parametros.
  #6 (permalink)  
Antiguo 26/01/2015, 11:26
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error con la conexión al verificar el usuario antes de agregar

Tu problema lo solucionas pasando como argumento la conexión a mysql:
Código PHP:
Ver original
  1. if(Existe(1,"censodemografico","Cedula",$cedula_txt, $conexion))
  2. {
  3.     $error=true;
  4.     echo "La cédula ya existe";
  5. }
Ya lo demás es que recuperes la ultima posición del arreglo que contiene la conexion.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 26/01/2015, 11:34
Avatar de jsstoni  
Fecha de Ingreso: enero-2015
Ubicación: Maracaibo
Mensajes: 82
Antigüedad: 9 años, 3 meses
Puntos: 4
Respuesta: Error con la conexión al verificar el usuario antes de agregar

Cita:
Iniciado por plitre_sys19 Ver Mensaje
Sii no lo estaba haciendo, queria hacerlo funcional pero veo que más recomendable es POO, tenia otro archivo con una tabla que estaba trabajando con el jquery datatables y a ese le colocaba la conexión otra vez.

Aunque creo que la función de Existe si esta bien en POO, o no? porque lo busco es que en una sola función haga todo los select, con solo pasar los parametros.
puedes agregar cuantas funciones quieras y pasar los parametros que quieras cual es la duda ?

Ejemplo php

Código PHP:
Ver original
  1. <?php
  2. class SQL {
  3. public $conexion;
  4. public function __construct() {
  5.     $this->conexion = new mysqli("localhost","root","password","db");
  6. }
  7. public function QuerySelect($string) {
  8.     $query = $this->conexion->query($string);
  9.     while ($row = $query->fetch_assoc()) {
  10.         $data[] = $row;
  11.     }
  12.     return $data;
  13. }
  14. }
  15.  
  16. class miApp extends SQL {
  17. publ¡c function MiBlog() {
  18.     $data = $this->QuerySelect("SELECT * FROM miblog");
  19.     for($i = 0; $i < count($data); $i++) {
  20.         echo $data[$i]['titulo'];
  21.     }
  22. }
  23. }
  24.  
  25. $app = new miApp();
  26.  
  27. $app->MiBlog();
  28. ?>
__________________
Desarrollo web Front End Realtime NodeJs

Etiquetas: mysql, select, sql, usuario, variable, verificar
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 00:25.