You are on page 1of 10

Página 1 de 10

Instalar y configurar framework zend


https://framework.zend.com/downloads

descargar el Zendframework desde:

https://github.com/zendframework/zendframework

Descargar el composer desde

https://github.com/zendframework/zf-web/blob/master/composer.phar

copiar el zip en C:\xampp\htdocs

Descargar composer.phrar en C:\xampp\htdocs\Zend


Página 2 de 10

php composer.phar self-update

php composer.phar install

Instalar acceso a bases de datos

$ composer require zendframework/zend-db


Página 3 de 10

Listado de clients.php
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' >
<head runat="server">
<title>consulta de cliente</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<script src="jquery/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>

</head>
<div class="box box-success box-solid">
<div class="box-header with-border">
<h3 class="box-title uppercase">Mantenimiento de clientes</h3>
</div>
<div class="box-body">
<form method="post">
<div class="form-horizontal">

<div class="form-group">
<label for="TxtcodigoCON" class="col-sm-2 control-label"
style="text-align:left;" >codigo</label>
<div class="col-sm-4">
<input id="TxtcodigoCON" name="TxtcodigoCON" type="text"
class='form-control' readonly ='readonly' value="" onkeypress='return SoloNumerosKP(event);'
onkeydown="return EnterKD(event);" onblur="javascript:if (this.value==''){this.value='0';}" maxlength='10'
placeholder="codigo" />
</div>
<label for="TxtnombresCON" class="col-sm-2 control-label"
style="text-align:left;" >nombres</label>
<div class="col-sm-4">
<input id="TxtnombresCON" name="TxtnombresCON"
type="text" class='form-control' value="" onkeypress='return SoloNumLetrasKP(event);'
onkeydown="return EnterKD(event);" maxlength='100' placeholder="nombres" />
</div>
</div>
<div class="form-group">
<label for="TxtapellidosCON" class="col-sm-2 control-label"
style="text-align:left;" >apellidos</label>
<div class="col-sm-4">
<input id="TxtapellidosCON" name="TxtapellidosCON"
type="text" class='form-control' value="" onkeypress='return SoloNumLetrasKP(event);'
onkeydown="return EnterKD(event);" maxlength='100' placeholder="apellidos" />
</div>
<label for="TxtsexoCON" class="col-sm-2 control-label"
style="text-align:left;" >sexo</label>
<div class="col-sm-4">
<input id="TxtsexoCON" name="TxtsexoCON" type="text"
class='form-control' value="" onkeypress='return SoloNumLetrasKP(event);' onkeydown="return
EnterKD(event);" maxlength='100' placeholder="sexo" />
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
</div>
Página 4 de 10

<div class="col-sm-4">
<button type="submit" id="btnconsultar" name="btnconsultar" class="btn btn-primary btn-
sm" ><span class="glyphicon glyphicon-search"></span> Consultar</button>
<a class="btn btn-primary btn-sm" href="/ferreteria/RegistroCliente.php?
pcodigo=0&amp;pAccion=N"><span class="glyphicon glyphicon-file"></span> Nuevo Registro</a>
</div>
</div>
</div>
<!-- Fin del filtro -->
<div class="table-responsive" style="overflow: auto; height: 300px;" >
<table id='TblListaConsulta' class="table table-hover">
<tr>
<th class="active">codigo</th>
<th class="active">nombres</th>
<th class="active">apellidos</th>
<th class="active">sexo</th>
<th class="active"></th>
<th class="active"></th>
</tr>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$connection = mysqli_connect("localhost", "root", "", "test", "3306");
//run the store proc
$result = mysqli_query($connection,
"CALL uspcliente_Listar(0,'".$_POST["TxtnombresCON"]."','".
$_POST["TxtapellidosCON"]."','".$_POST["TxtsexoCON"]."') ") or die("Query fail: " . mysqli_error());
//loop the result set
while ($row = mysqli_fetch_array($result)){

echo "<tr>";
echo "<td>".$row['codigo']."</td>";
echo "<td>".$row['nombres']."</td>";
echo "<td>".$row['apellidos']."</td>";
echo "<td>".$row['sexo']."</td>";

echo "<td><a class='btn btn-primary btn-sm' href='/ferreteria/RegistroCliente.php?pcodigo=".


$row['codigo']."&amp;pAccion=A'><span class='glyphicon glyphicon-edit'></span></a></td>";

echo "<td><a class='btn btn-primary btn-sm' href='/ferreteria/RegistroCliente.php?


pcodigo=".$row['codigo']."&amp;pAccion=E'><span class='glyphicon glyphicon-trash'></span></a></td>";

echo "</tr>";
}
echo "</table>";
}
?>

</table>
</div>
</form>
</div>
<div id="DivMostrarCarga">
<i class="fa fa-refresh fa-spin"></i>
</div>
Página 5 de 10

</div>

RegistroClientes.php
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<script src="jquery/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>

<?php
include("/Funciones/Funciones.php");
include("Clientes_BE.php");
?>
<div class="box box-success box-solid">
<div class="box-header">
<h3 class="box-title uppercase">Registro de cliente</h3>
</div>
<div class="box-content">
<form method="post">

<?php
$oClientes_BE=new cliente_BE();
if ($_SERVER['REQUEST_METHOD'] == 'GET')
{
$connection = mysqli_connect("localhost", "root", "", "test", "3306");
//run the store proc
$result = mysqli_query($connection,
"CALL uspcliente_ListarKey(".$_GET["pcodigo"]."); ") or die("Query fail: " . mysqli_error());
//loop the result set
while ($row = mysqli_fetch_array($result)){
$oClientes_BE->CargarDatos($row['codigo'],
$row['nombres'],
$row['apellidos'],
$row['sexo']);
}
}
?>

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$connection = mysqli_connect("localhost", "root", "", "test", "3306");
//run the store proc
$result = mysqli_query($connection,
"CALL uspcliente_RegistraModifica('".$_POST["pAccion"]."',".$_POST["Txtcodigo"].",'".
$_POST["Txtnombres"]."','".$_POST["Txtapellidos"]."','".$_POST["Txtsexo"]."') ") or die("Query fail: " .
mysqli_error());
//loop the result set
/* while ($row = mysqli_fetch_array($result)){
echo $row['codigo']."|"."¬";
}
*/

}
?>
Página 6 de 10

<input type="hidden" name="pAccion" id="pAccion" value="<?php echo $_GET["pAccion"]; ?>" />


<input type="hidden" name="CodigoError" id="CodigoError" value="0" />
<input type="hidden" name="MensajeError" id="MensajeError" value="" />
<div class="box-body">
<div class="form-horizontal">

<div class="form-group">
<label for="Txtcodigo" class="col-sm-2 control-label" style="text-align:left;"
>codigo</label>
<div class="col-sm-4">
<input id="Txtcodigo" name="Txtcodigo" type="text" class='form-control' readonly ='readonly'
value="<?php echo $oClientes_BE->codigo; ?>" onkeypress='return SoloNumerosKP(event);'
onkeydown="return EnterKD(event);" onblur="javascript:if (this.value==''){this.value='0';}" maxlength='10'
placeholder="Código de cliente" />
</div>
<label for="Txtnombres" class="col-sm-2 control-label" style="text-align:left;" >nombres</label>
<div class="col-sm-4">
<input id="Txtnombres" name="Txtnombres" type="text" class='form-control' value="<?
php echo $oClientes_BE->nombres; ?>" onkeypress='return SoloNumLetrasKP(event);'
onkeydown="return EnterKD(event);" maxlength='100' placeholder="Nombres del cliente" />

</div>
</div>
<div class="form-group">
<label for="Txtapellidos" class="col-sm-2 control-label" style="text-align:left;"
>apellidos</label>
<div class="col-sm-4">
<input id="Txtapellidos" name="Txtapellidos" type="text" class='form-control' value="<?
php echo $oClientes_BE->apellidos; ?>" onkeypress='return SoloNumLetrasKP(event);'
onkeydown="return EnterKD(event);" maxlength='100' placeholder="apellidos" />

</div>
<label for="Txtsexo" class="col-sm-2 control-label" style="text-align:left;" >sexo</label>
<div class="col-sm-4">
<input id="Txtsexo" name="Txtsexo" type="text" class='form-control' value="<?php echo
$oClientes_BE->sexo; ?>" onkeypress='return SoloNumLetrasKP(event);' onkeydown="return
EnterKD(event);" maxlength='100' placeholder="sexo" />

</div>
</div>
<div class="form-group">
<div class="col-sm-8" style="text-align:center;">
<button type="submit" id="BtnRegistraModifica" class="btn btn-primary
btn-sm" onclick="window.cliente.RegistrarModifica();"><i class="fa fa-save"><?php echo (new
Funciones())->BotonAccion($_GET['pAccion']);?></i> </button>
<a class="btn btn-primary btn-sm"
href="/ferreteria/Listadoclientes.php"><i class="fa fa-backward"></i> Volver</a>
</div>
</div>
<div id="divMensajeAlerta"><span id="lblMensajeAlerta" class="list-group-item
list-group-item-danger"></span></div>
</div>
<!-- Fin del filtro -->
</div>
</form>
Página 7 de 10

</div>
<div id="DivMostrarCarga">
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>

Clases y transacciones
<?
class clset_persona{
public $codigo;
public $nombre;
public $paterno;
public $materno;
public $sexo;

function __construct($inCodigo=null, $inNombre=null, $inPaterno=null, $inMaterno=null, $inSexo=null)


{
if (!empty($inCodigo))
{
$this->codigo = $inCodigo;
}
if (!empty($inNombre))
{
$this->nombre = $inNombre;
}
if (!empty($inPaterno))
{
$this->paterno = $inPaterno;
}
if (!empty($inMaterno))
{
$this->materno = $inMaterno;
}
if (!empty($inSexo))
{
$this->sexo = $inSexo;
}
}
}
?>

<?
include 'clsbd_persona.php';

function GetPersonasLg($persona)
{
try
{
return $postArrayLg = GetPersonasBd($persona);
}
catch(Exception $e)
{
return new Exception("No se puedo conectar a la clase Acceso datos");
Página 8 de 10

}
}

function InsertarLg($persona)
{
try
{
return $proceso= InsertarBD($persona);
}
catch(Exception $e)
{
return new Exception("No se puedo conectar a la clase Acceso datos");
}
}
?>

Conexión.php
<?
$connection = mysql_connect('localhost', 'root', 'mysql') or die
("<p class='error'>Lo sentimos, no se puedo conectar al servidor de base de datos.</p>");
$database = "bd_prueba";
mysql_select_db($database, $connection) or die
("<p class='error'>Lo Sebtimos, no se pudo conectar a la base de datos.</p>");

?>

Db.php
<?
Class db{

private $servidor;
private $usuario;
private $password;
private $base_datos;
private $link;
private $stmt;
private $array;

static $_instance;

/*La función construct es privada para evitar que el objeto pueda ser creado mediante new*/
private function __construct(){
$this->setConexion();
$this->conectar();
}

/*Método para establecer los parámetros de la conexión*/


private function setConexion(){
$conf = Conf::getInstance();
$this->servidor=$conf->getHostDB();
$this->base_datos=$conf->getDB();
Página 9 de 10

$this->usuario=$conf->getUserDB();
$this->password=$conf->getPassDB();
}

/*Evitamos el clonaje del objeto. Patrón Singleton*/


private function __clone(){ }

/*Función encargada de crear, si es necesario, el objeto. Esta es la función que debemos llamar desde fuera de la
clase para instanciar el objeto, y así, poder utilizar sus métodos*/
public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance=new self();
}
return self::$_instance;
}

/*Realiza la conexión a la base de datos.*/


private function conectar(){
$this->link=mysql_connect($this->servidor, $this->usuario, $this->password);
mysql_select_db($this->base_datos,$this->link);
@mysql_query("SET NAMES 'utf8'");
}

/*Método para ejecutar una sentencia sql*/


public function ejecutar($sql){
$this->stmt=mysql_query($sql,$this->link);
return $this->stmt;
}

/*Método para obtener una fila de resultados de la sentencia sql*/


public function obtener_fila($stmt,$fila){
if ($fila==0){
$this->array=mysql_fetch_array($stmt);
}else{
mysql_data_seek($stmt,$fila);
$this->array=mysql_fetch_array($stmt);
}
return $this->array;
}

//Devuelve el último id del insert introducido


public function lastID(){
return mysql_insert_id($this->link);
}

}
?>
Página 10 de 10

Index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include 'clslg_persona.php';
include_once 'clset_persona.php';
$persona = new clset_persona();
$persona->codigo = '2';
$lista = GetPersonasLg($persona);
if($lista){
foreach ($lista as $post)
{
echo "<div class='post'>";
echo "<h1>" . $post->codigo . "</h1>";
echo "<p>" . $post->nombre . "<p>";
echo "<p>" . $post->paterno . "</p>";
echo "<p>" . $post->materno . "</p>";
echo "<p>" . $post->sexo . "</p>";
echo "</div>";
}
}
else
{
print "no he podido traer datos.";
}

//Insertar
$persona->nombre = 'Carlitos';
$persona->paterno = 'Magallanes';
$persona->materno = 'Pajares';
$persona->sexo = 'M';
$proceso = InsertarLg($persona);
print $proceso;

?>
</body>
</html>

You might also like