Nueva pregunta

Pregunta:

 
  2  
 
Fecha: 11-11-2016 09:43:16 (En Español)

Undefined variable: base in C:\xampp2\htdocs\paginacion.php y Call to a member function prepare() on null in C:\xampp2\htdocs\paginacion.php[No resuelta]

Hola diculpen la molestia en pocas palabras estoy ejecutando un crud con una paginacion pero al momento de agregarle el codigo(y ejecutarlo) de la paginacion me marcar 2 errores, ojalá que alguien por aqui pueda ayudarme se lo agradeceria mucho..... SOY UN NOVATO EN PHP, el crud si funcionaba pero cuando le puse el archivo paginacion.php sale error

anexo los archivos....

Archivo controlDB.php
//Archivo controlDB.php-----------------------------------------------------------------------------------
class controlDB{

	function __construct(){
		
		try{
		//Declarando Variables
		
		$host="localhost";
		$db_name="pruebas";
		$usuario="root";
		$pass="";
		
		//return $base;
		//Cadena Conexion
		$this->con=mysqli_connect($host,$usuario,$pass) or die ("Error en la Conexion a la BBDD");
	
		//Seleccion de BBDD
		mysqli_select_db($this->con,$db_name) or die ("No se ah encontrado la BBDD");	
		
		//echo "Conexion Exitosa";
			
		}catch(Exception $ex){
			throw $ex;
		}
	}
	
	//SELECT
	function consultar($sql){
	
		$res=mysqli_query($this->con,$sql);
		$data=null;
		
			while($fila=mysqli_fetch_assoc($res)){
			
					$data[]=$fila;
			}
		
		return $data;

	}
	
	//INSERT , DELETE , UPDATE
	
	function actualizar($sql){
	
		$res=mysqli_query($this->con,$sql);
		
		if(mysqli_affected_rows($this->con)<=0){
		
			echo "No se pudo Realizar lo pedido";	
			
		}else{
			
			echo "Se ah Realizado los Cambios Correctamente";
			}
	}

}


Archivo paginacion.php
// Archivo paginacion.php------------------------------------------------------------------------------------
//Este archivo me permite mostrarme la informacion de mi tabla  de 3 en 3

 require_once("controlDB.php");
         
   //--------------------paginacion----------------------		 
        
         	$tamano_paginas=3;
		
           if(isset($_GET["pagina"]) )
           {			   
		  
		  if($_GET["pagina"]==1)
		    {
			 header("Location:listado.php");	
			}    
		      else
				  {
					$pagina=$_GET["pagina"];  
				  }
		    }else
			  {
		$pagina=1;
		      }
			  
		$empezar_desde=($pagina-1)*$tamano_paginas;
		
	   $sql_total="select * from datos_usuarios";
	   
       $resultado=$base->prepare($sql_total);       //--------------------------------------aqui me marca error
       
       $resultado->execute(array() );

           $num_filas=$resultado->rowCount();
		   $total_paginas=ceil($num_filas/$tamano_paginas);


Archivo capturar.php
//Archivo capturar.php-------------------------------------------------------------------------------

require "controlDB.php";
	
//Capturamos la funcion
$funcion=$_REQUEST["funcion"];

$p=$_GET["p"];

if($funcion!="eliminar"){
	
	$cod=$_POST["cod"];
	
	$nombre=$_POST["txtnombre"];
	$apellido=$_POST["txtapellido"];
	//$telefono=$_POST["txttelefono"];
	//$dni=$_POST["txtdni"];
	$direccion=$_POST["txtdireccion"];

}

//instancia de controlDB
$obj = new controlDB();
//$obj = new Conectar();

//Validamos la Operacion
if($funcion=="modificar"){
	
	$sql="update datos_usuarios set Nombre='$nombre' , Apellido='$apellido' , Direccion='$direccion' where Id=$cod";
	
	//echo $sql;
}else if($funcion=="eliminar"){
	$sql="delete from datos_usuarios where Id='$p'";
	
}

else{
	$sql="insert into datos_usuarios(Nombre,Apellido,Direccion) values ('$nombre','$apellido','$direccion')";
}

$obj->actualizar($sql);

//Redireccionamos a Listado
header("location:listado.php?z=lista");
?>



Archivo insertar.php
//Archivo insertar.php-------------------------------------------------------------------------------------
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<?php include("menu.php"); ?>
</head>

<body>
<h2>INSERTAR REGISTRO DE NUEVOS CLIENTE</h2>
<hr>
<form name="form1" method="post" action="capturar.php">
  <table width="200" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <th scope="row">NOMBRE</th>
      <td><input name="txtnombre" type="text"></td>
    </tr>
    <tr>
      <th scope="row">APELLIDO</th>
      <td><input name="txtapellido" type="text"></td>
    </tr>
    <tr>
      <th scope="row">TELEFONO</th>
      <td><input name="txttelefono" type="text"></td>
    </tr>
    <tr>
      <th scope="row">DNI</th>
      <td><input name="txtdni" type="text"></td>
    </tr>
    <tr>
      <th scope="row">DIRECCION</th>
      <td><input name="txtdireccion" type="text"></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" value="INSERTAR"></td>
    </tr>
  </table>
</form>
</body>
</html>


Archivo listado.php
//Archivo listado.php-------------------------------------------------------------------------------------------------------
<?php
require "controlDB.php";

$obj = new controlDB();
//$obj = new Conectar();

$data=$obj->consultar("select * from datos_usuarios");
//$data=controlDB::consultar("select * from datos_usuarios");
//$data=$obj->consultar($sql);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<script>

	function modificar(cod){
		window.location="http://localhost/cursoPHP3/Copia crud3/modificar.php?p="+cod;
	}
	
	function eliminar(cod){
		window.location="http://localhost/cursoPHP3/Copia crud3/capturar.php?p="+cod+"&funcion=eliminar";
	}
	
</script>
<?php include("menu.php"); ?>
</head>
<body>

<?php 
require("paginacion.php"); 

?>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <th scope="col">ID</th>
    <th scope="col">NOMBRE</th>
    <th scope="col">APELLIDO</th>
    <th scope="col">TELEFONO</th>
    <th scope="col">DNI</th>
    <th scope="col">DIRECCION</th>
    <?php if($_GET["z"]=="modificar"){?>
    <th scope="col">M</th>
    <?php }if($_GET["z"]=="eliminar") {?>
    <th scope="col">E</th>
    <?php } ?>
  </tr>
  <?php foreach($data as $fila){?>
  <tr>
    <td><?php echo $fila["Id"]?></td>
    <td><?php echo $fila["Nombre"]?></td>
    <td><?php echo $fila["Apellido"]?></td>
    <td><?php //echo $fila["telefono"]?></td>
    <td><?php //echo $fila["dni"]?></td>
    <td><?php echo $fila["Direccion"]?></td>
    
    <?php if($_GET["z"]=="modificar"){?>
    <td><img src="IMAGES/editar.png" width="20" onClick="modificar(<?php echo $fila["Id"]?>)"></td>
    
    <?php }if($_GET["z"]=="eliminar"){?>
    <td><img src="IMAGES/eliminar.png" width="20" onClick="eliminar(<?php echo $fila["Id"]?>)"></td>
    <?php }?>
  </tr>

  <?php }?>
  
  <?php
	   
	   //-------paginacion
	  	  for($i=1; $i<=$total_paginas; $i++)
		{
		echo "<a href='?pagina=" . $i . "'>" . $i . "</a> ";		
		
		}
		?> 
</table>
</body>
</html>


Archivo menu.php
Archivo menu.php-------------------------------------------------------------------------------------------------------------
<link rel="stylesheet" type="text/css" href="CSS/normalize.css"/>
<link rel="stylesheet" type="text/css" href="CSS/hoja_estilo.css"/>
<nav>
	<ul>
    	<li><a href="#">INICIO</a></li>
        <li><a href="listado.php?z=lista">LISTAR</a></li>
        <li><a href="insertar.php">INSERTAR</a></li>
        <li><a href="listado.php?z=modificar">MODIFICAR</a></li>
        <li><a href="listado.php?z=eliminar">ELIMINAR</a></li>
        <li><a href="#">CONTACTO</a></li>
    </ul>
</nav>



Archivo modificar.php
//Archivo modificar.php-----------------------------------------------------------------------------------------
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<?php include("menu.php"); ?>
</head>

<body>
<?php
require "controlDB.php";

$cod=$_GET["p"];

$obj=new controlDB();
//$obj = new Conectar();

$data=$obj->consultar("select * from datos_usuarios where Id=$cod");
?>
<h2>MODIFICAR DATOS</h2>
<hr>
<form name="form1" method="post" action="capturar.php">
  <table width="200" border="0" cellpadding="0" cellspacing="0">
    <?php foreach($data as $fila){?>
    <tr>
      <th scope="row">ID</th>
      <td><?php echo $cod; ?></td>
    </tr> 
    <tr>
      <th scope="row">NOMBRE</th>
      <td><input name="txtnombre" type="text" value="<?php echo $fila["Nombre"]; ?>"></td>
    </tr>
    <tr>
      <th scope="row">APELLIDO</th>
      <td><input name="txtapellido" type="text" value="<?php echo $fila["Apellido"]; ?>"></td>
    </tr>
    
    <tr>
      <th scope="row">DIRECCION</th>
      <td><input name="txtdireccion" type="text" value="<?php echo $fila["Direccion"]; ?>"></td>
    </tr>
    <?php }?>
    <tr>
      <td colspan="2"><input type="submit" value="GUARDAR"></td>
    </tr>
  </table>
  <input type="hidden" name="funcion" value="modificar">
  <input type="hidden" name="cod" value="<?php echo $cod; ?>">
  
</form>
</body>
</html>
Etiquetas: Error - MySQL - Paginación - PHP - PHP MySQLi - Pregunta - Variables Votos: 2 - Respuestas: 1 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 13-11-2016 05:37:13 Hola Lael,

    Bueno primero, $base no existe, por eso te da el error. El unico lugar donde alguna vez la definiste es en el metodo __construct() de la clase controlDB() y esta comentada.

    Luego, veo que estas usando al extension mysqli de PHP (la forma procedural) en general, como en la conexion que estableces en el metodo __construct() de la clase controlDB(), pero particularmente en el caso donde te da el error estas queriendo utilizar la extension mysqli en su forma de programacion orientada a objetos (OOP) para lo cual deberias haber creado la conexion de forma diferente.

    Para que no aparezca el error con el codigo que actualmente tenes necesitas hacer lo siguiente en el archivo paginacion.php:

    - crear una instancia de controlDB de esta forma: $obj = new controlDB();
    - utilizar elmetodo consultar de controlDB() para realizar la query queno podes realizar por el error: $resultado = $obj->consultar($sql_total);
    - Para contar el total: $num_filas = count($resultado);

    Cualquier duda respondeme este comentario, suerte!

    Diego
      Votos: 2 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com