elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Nota de Error PhpMyAdmin
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Nota de Error PhpMyAdmin  (Leído 1,062 veces)
Sempai15

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Nota de Error PhpMyAdmin
« en: 13 Febrero 2018, 21:28 pm »

Hola lo que pasa es que estoy haciendo como deber una conexión entre php (netbeans) y Mysql (XAMPP), ya tengo el diseño de un formulario pero al intentarlo me sale esto:

Fatal error: Call to a member function hayDatos() on null in C:\xampp\htdocs\phpExamenTamayo\vista\empleado_editar.php on line 71

Este es el código de hayDatos()

Código
  1. <?php
  2.  
  3. class Conexion {
  4.    //put your code here
  5.  
  6.    private $baseDatos;
  7.    private $servidor;
  8.    private $usuario;
  9.    private $clave;
  10.    private $conexionID = 0;
  11.    private $consultaID = 0;
  12.  
  13.    /* Numero de error y texto de error */
  14.    public $Errno = 0;
  15.    public $Error = '';
  16.    private $posFilaActual = 0;
  17.  
  18.    function __construct() {
  19.        $this->baseDatos = 'examentamayo';
  20.        $this->servidor = 'localhost';
  21.        $this->usuario = 'root';
  22.        $this->clave = '';
  23.        $this->conectar();
  24.    }
  25.  
  26.    /* Conexion a la base de datos */
  27.  
  28.    private function conectar() {
  29.        //Conectamos al servidor
  30.        $this->conexionID = mysql_connect($this->servidor,
  31.                        $this->usuario, $this->clave);
  32.        if (!$this->conexionID) {
  33.            $this->Error = 'Ha fallado la conexion';
  34. return 0;
  35.        }
  36.        //Seleccionamos la base de datos
  37.        if (!mysql_select_db($this->baseDatos,
  38.                        $this->conexionID)) {
  39. echo 'Imposible abrir la base de datos';
  40.            $this->Error = 'Imposible abrir la base de datos';
  41.            return 0;
  42.        }
  43.        /* Si hemos tenido éxito conectando
  44.           devuelve el identificador de la conexión */
  45.        return $this->conexionID;
  46.    }
  47.  
  48.    /* Ejecuta una consulta */
  49. public function iniciarTransaccion()
  50. {
  51. mysql_query("BEGIN");
  52. }
  53. public function terminarTransaccion()
  54. {
  55. mysql_query("COMMIT");
  56. }
  57.  
  58.   public function consultar($sql = '') {
  59.        $this->posFilaActual = 0;
  60.        if ($sql == '') {
  61.            $this->Error = 'No ha especificado la consulta SQL';
  62.            return 0;
  63.        }
  64.        //Ejecutamos la consulta
  65. mysql_query("SET NAMES utf8");
  66.        $this->consultaID = mysql_query($sql, $this->conexionID);
  67.        if (!$this->consultaID) {
  68.            $this->Errno = 0; //mysql_errono();
  69.            $this->Error = 'Hay un error'; //mysql_error();
  70.            return 0;
  71.        }
  72.        $this->Errno = 1;
  73.  
  74.        return $this->consultaID;
  75.    }
  76.  
  77.    /* Numero de campos de una consulta */
  78.  
  79.    public function numCampos() {
  80.        return mysql_num_fields($this->consultaID);
  81.    }
  82.  
  83.    /* Numero de registros de una consulta */
  84.  
  85.    public function numRegistros() {
  86.        return mysql_num_rows($this->consultaID);
  87.    }
  88.  
  89.    /* Numero de un campo de una consulta */
  90.  
  91.    public function nombreCampo($numCampo) {
  92.        return mysql_field_name($this->consultaID, $numCampo);
  93.    }
  94.  
  95.    public function obtenerFilaArray() {
  96.        $row = mysql_fetch_row($this->consultaID);
  97.        $this->posFilaActual = $this->posFilaActual + 1;
  98.        return $row;
  99.    }
  100.  
  101.    public function obtenerFila() {
  102.        $row = mysql_fetch_array($this->consultaID);
  103.        $this->posFilaActual = $this->posFilaActual + 1;
  104.        return $row;
  105.    }
  106.  
  107.    public function obtenerFilaAssoc() {
  108.        $row = mysql_fetch_array($this->consultaID, MYSQL_ASSOC);
  109.       $this->posFilaActual = $this->posFilaActual + 1;
  110.        return $row;
  111.    }
  112.  
  113.    public function hayDatos() {
  114.        if ($this->Errno == 1) {
  115.            if ($this->posFilaActual < $this->numRegistros())
  116.                return true;
  117.        }
  118.        return false;
  119.    }
  120.  
  121. }
  122. ?>

Y este es el de Control_Empleado
Código
  1. <?php
  2. include_once 'modelo/ModeloEmpleado.php';
  3. $emp = new ModeloEmpleado();
  4. $emp1 = new ModeloEmpleado();
  5. $emp2 = new ModeloEmpleado();
  6.  
  7. /// despachador
  8.  
  9. if ($_REQUEST['accion'] == "empleado_lista") {
  10.    $emp->ver_empleado();
  11.    include_once 'vista/empleado_lista.php';
  12. } else
  13. if ($_REQUEST['accion'] == "empleado_nueva") {
  14.    $emp->ver_empleado();
  15.    include_once 'vista/empleado_nueva.php';
  16. } else
  17. if ($_REQUEST['accion'] == "EmpleadoGuardar") {
  18.    $emp1->guardar_empleado($_POST['Cedula_Persona'], $_POST['ID_usuario'], $_POST['Departamento'], $_POST['Inicio_Contrato'], $_POST['Fin_Contrato'], $_POST['Salario'], $_POST['Años_Trabajo'])
  19.    ?>
  20.    <script type="text/javascript">
  21.        alert ('se agrego  exitosamente');
  22.    </script>
  23.  
  24.    <?php
  25.  
  26.    $emp->ver_empleado();
  27.    include_once 'vista/empleado_lista.php';
  28. } else
  29. if ($_REQUEST['accion'] == "editar_empleado") {
  30.    $emp->ver_emp1($_REQUEST['Cedula_Persona']);
  31.    include_once 'vista/empleado_editar.php';
  32. } else
  33. if ($_REQUEST['accion'] == "EmpleadoModificar") {
  34.  
  35.    $emp1->modificar_empleado($_REQUEST['Cedula_Persona'], $_POST['ID_usuario'], $_POST['Departamento'], $_POST['Inicio_Contrato'], $_POST['Fin_Contrato'], $_POST['Salario'], $_POST['Años_Trabajo'])
  36.    ?>
  37.    <script type="text/javascript">
  38.        alert ('se modifico exitosamente');
  39.    </script>
  40.  
  41.    <?php
  42.    $emp->ver_empleado();
  43.    include_once 'vista/empleado_lista.php';
  44. }
  45.  

Alguien ayuda


En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 443



Ver Perfil WWW
Re: Nota de Error PhpMyAdmin
« Respuesta #1 en: 14 Febrero 2018, 00:39 am »

Mueetra el codigo de empleado_editar.php pero con el contenido exacto para que coincida con la linea de error, 71


En línea

Sempai15

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Nota de Error PhpMyAdmin
« Respuesta #2 en: 14 Febrero 2018, 00:46 am »

Aquí esta el empleado_editar

Código
  1. <?php
  2. //if ((isset($_SESSION['usuario']))and $_SESSION['id_perfil']==4)
  3. //{
  4. ?>
  5.  
  6. <html xmlns = "http://www.w3.org/1999/xhtml">
  7.    <head>
  8.        <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />
  9.        <title>EDITAR USUARIO</title>
  10.  
  11.        <script languaje = "javascript">
  12.  
  13.            < script type = "text/javascript" src = "../validaciones/validar.js" ></script>
  14.        <script type="text/javascript" src="../validaciones/validar2.js"></script>
  15.        <script>
  16.            <!--
  17.            /*VALIDACION PARA SOLO NUMEROS*/
  18.  
  19.            function validarNumero(e) {
  20.                tecla = (document.all) ? e.keyCode : e.which;
  21.                if (tecla == 8 || tecla == 0)
  22.                    return true;
  23.                patron = /[0123456789.]/;
  24.                te = String.fromCharCode(tecla);
  25.                return patron.test(te);
  26.            }
  27.            function validarletras(e) {
  28.                tecla = (document.all) ? e.keyCode : e.which;
  29.                if (tecla == 8 || tecla == 0)
  30.                    return true;
  31.                patron = /[qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM]/;
  32.                te = String.fromCharCode(tecla);
  33.                return patron.test(te);
  34.            }
  35.            //-->
  36.  
  37.  
  38.  
  39.        </script>
  40.    </head>
  41.  
  42.    <body >
  43.        <?php
  44. //include('../plantilla/cabecera6.php');
  45.        ?>
  46.  
  47.        <h3 class="art-postheader">EDITAR EMPLEADO</h3>
  48.  
  49.  
  50.  
  51.        <table align="center" width="100%" border="1">
  52.            <tr>
  53.                <td align="center" width="20%"><input type="button" value="ATRAS" name="atras"/></td>
  54.                <td align="center" width="20%"><input type="button" value="NUEVO" name="nuevo"/></td>
  55.                <td align="center" width="20%"><input type="reset" value="LIMPIAR" name="limpiar"/></td>
  56.                <td align="center" width="20%"><input type="button" value="ADELANTE" name="adelante"/></td>
  57.                <td align="center" width="10%">
  58.  
  59.                    <!--                    <form name="form_reloj">
  60.                                            <input type="text" id="reloj" name="relo" />
  61.                                        </form>-->
  62.                </td>
  63.  
  64.            </tr>
  65.        </table>
  66.  
  67.        </head>    
  68.        <?php
  69.        // put your code here
  70.        if ($emp1->hayDatos()) {
  71.            $fila = $emp1->obtenerFila();
  72.        }
  73.        ?>
  74.        <form name="form1" method="post" action="Control_Empleado.php?accion=EmpleadoModificar&amp;ID=<?php echo $fila['Cedula_Persona'] ?>">
  75.            <table width="100%" align="center">
  76.                <tr>
  77.                    <tr>
  78.                        <th height = "29" align = "left" scope = "col"><div align = "right">CEDULA PERSONA:</div></th>
  79.                        <td><label></label>
  80.                            <input name = "Cedula_Persona" type = "text" id = "Cedula_Persona" onkeypress = "return  validarNumero()(event);" onkeyup = "this.value = this.value.toUpperCase();
  81.                                   " value = "" size = "45" readonly = "readonly" required = "required"/></td>
  82.                    </tr>
  83.                    <tr>
  84.                        <th height="29" align="left" scope="col"><div align="right">ID_USUARIO:</div></th>
  85.                        <td><label></label>
  86.                            <input name="ID_Usuario" type="text" id="ID_Usuario" size="50" onkeypress="return  validarletras()(event);" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  87.                    </tr>
  88.                    <tr>
  89.                        <th height="29" align="left" scope="col"><div align="right">DEPARTAMENTO:</div></th>
  90.                        <td><label></label>
  91.                            <input name="Departamento" type="text" id="Departamento" size="50" onkeypress="return  validarletras()(event);" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  92.                    </tr>
  93.                    <tr>
  94.                        <th height="29" align="left" scope="col"><div align="right">INICIO DE CONTRATO:</div></th>
  95.                        <td><label></label>
  96.                            <input name="Inicio_Contrato" type="text" id="Inicio_Contrato" size="50" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  97.                    </tr>
  98.                    <tr>
  99.                        <th height="29" align="left" scope="col"><div align="right">FIN DE CONTRATO:</div></th>
  100.                        <td><label></label>
  101.                            <input name="Fin_Contrato" type="text" id="Fin_Contrato" size="50" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  102.                    </tr>
  103.                    <tr>
  104.                        <th height="29" align="left" scope="col"><div align="right">SALARIO:</div></th>
  105.                        <td><label></label>
  106.                            <input name="Salario" type="Salario" id="Celular" size="50" onkeypress="return  validarNumero()()(event);" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  107.                    </tr>
  108.                    <tr>
  109.                        <th height="29" align="left" scope="col"><div align="right">AÑOS DE TRABAJO:</div></th>
  110.                        <td><label></label>
  111.                            <input name="Año_Trabajo" type="Salario" id="Año_Trabajo" size="50" onkeypress="return  validarNumero()()(event);" required="required" onkeyup="this.value = this.value.toUpperCase();"/></td>
  112.                    </tr>
  113.                    <tr>
  114.                        <td align = "right">&nbsp;
  115.                        </td>
  116.                        <td><label>
  117.                                <input type = "submit" name = "Submit" value = "GUARDAR" />
  118.                            </label></td>
  119.                    </tr>
  120.            </table>
  121.        </form>
  122.        <?php
  123.        include('../plantilla/pie.php');
  124.        ?>
  125.    </body>
  126.  
  127. </html>
  128. <?php
  129. /*
  130.   }
  131.   else
  132.   {
  133.   session_destroy();
  134.   header("Location: ../index.php");
  135.   }
  136.  */
  137. ?>
En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 443



Ver Perfil WWW
Re: Nota de Error PhpMyAdmin
« Respuesta #3 en: 14 Febrero 2018, 05:00 am »

Podría ser que $emp1 no estuviera instanciada llegado a esa parte,  así  que antes de ejecutar esa línea mete esa condición en otra condición para que lo verifique usando isset($emp1)  y de no estar instanciado en el bloque del else pones echo "El error se debe a eso" a fin de depurar.

También me he fijado que no hay un session_start() cuando instancias en Control_empleado,  así que antes de ponerlo junto a lo que indiqué antes también en el mismo empleado_editar al comienzo depura con un echo el session_start() que tienes en la cabecera para saber si está creando una nueva sesión o simplemente la está recuperando que sería lo correcto.

http://php.net/manual/es/function.session-start.php
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en phpmyadmin
Desarrollo Web
Clavo Oxidado 0 1,159 Último mensaje 15 Julio 2010, 23:04 pm
por Clavo Oxidado
Error al instalar phpmyadmin en ubuntu 14.04
GNU/Linux
Dixius 2 4,507 Último mensaje 24 Mayo 2014, 13:00 pm
por Gh057
/phpmyadmin/ ¿Grave error?
Seguridad
Xyzed 5 1,452 Último mensaje 6 Abril 2021, 17:05 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines