Hola, hace tiempo vengo leyendo este foro y me ha si de mucha ayuda pero ahora quería consultarles algo.
Pues he revisado el modelo MVC y la POO y tengo esto actualmente:
Estructura de Carpetas - Config
- controller
- css
- img
- js
- model
- view
En config tengo esta clase para manejar la coneccion a la base de datos, use PDO por que me parecio mas sencillo ademas de solo tener que cambiar unas cuantas lineas para usar otro motor de BD.
Código PHP:
Ver original<?php
class config
{
var $dsn = 'mysql:dbname=mitabla;host=localhost';
var $user = 'root';
var $password = '';
var $dbms='PDO';
function connect()
{
switch($this->dbms)
{
case 'PDO':
try
{
$connection= new PDO($this->dsn,$this->user,$this->password);
}
catch (PDOException $e)
{
echo 'Connection Error: ' . $e->getMessage();
}
return $connection;
break;
}
}
}
?>
En la carpeta model tengo las consultas a la base de datos.
Código PHP:
Ver original<?php
require_once '../config/config.php';
class modelo_cargos
{
function modelo_modificar_cargos($idcargoc,$descripcionc)
{
$config= new config();
$conn=$config->connect();
$sql="UPDATE cargos SET descripcionc=? WHERE idcargoc=?";
$descripcioncl=$conn->quote($descripcionc);
$sth = $conn->prepare($sql);
$sth->bindParam(1, $descripcioncl,PDO::PARAM_STR, 20);
$sth->bindParam(2, $idcargoc,PDO::PARAM_INT);
$sth->execute();
}
}
?>
- Aquí mi primera duda, si yo quisiera hacer un paginador la lógica iría en el
modelo cierto? o me equivoco.
- Y segundo aqui uso quote para entrecomilalr cadenas desagradables y las
guarda asi en la bd y despues con una expresion regular quito las comillas algo
asi:
Ingreso Ca'de''na \"co'\"mpleja y lo guardo como 'Ca''de''''na "co''"mpleja' y aplicandole la expresion regular a la vista Cadena compleja, hacer esto esta bien o hay una forma mejor.
En controller tengo esto:
Código PHP:
Ver original<?php
require_once '../model/modelo_cargos.php';
class controlador_cargos
{
function controlador_modificar_cargos($idcargoc,$descripcionc)
{
$modelo_cargos= new modelo_cargos();
$data=$modelo_cargos->modelo_modificar_cargos($idcargoc,$descripcionc);
}
}
?>
Aqui solo recibo la consulta y tengo entendido que aqui no deberia haber nada de html correcto?.
Y la view lo tengo asi:
Código PHP:
Ver original<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="ISO-8859-1">
<meta name="Administración Cargos" content="Cargos">
<meta name="keywords" content="Cargos Administarción">
<link rel="stylesheet" href="../css/estilos.css">
<link href="../css/bootstrap.css" rel="stylesheet">
<link href="../css/bootstrap-responsive.css" rel="stylesheet">
<link href="../css/docs.css" rel="stylesheet">
<link href="../js/google-code-prettify/prettify.css" rel="stylesheet">
<script src="../js/mensajes.js"></script>
<script src="../js/limites.js"></script>
<title>Administración Cargos</title>
</head>
<body id="body">
<div id="centrar">
<header>
<h1 id="header" >Administración de Cargos</h1>
</header>
<div class="container" id="col">
<?php
require_once '../controller/controlador_cargos.php';
$controlador_cargos= new controlador_cargos();
$idcargoc = isset($_POST["idcargoc"]) ?
$_POST["idcargoc"] : NULL; $descripcionc = str_replace("'","",isset($_POST["descripcionc"]) ?
$_POST["descripcionc"] : NULL); $subm = isset($_POST["subm"]) ?
$_POST["subm"] : NULL; $buscar = isset($_POST["buscar"]) ?
$_POST["buscar"] : NULL; ?>
<form action="vista_cargos.php" method="post" enctype="multipart/form-data" class="form-horizontal">
<div class="control-group">
<div class="controls">
<input type="hidden" value="<?php echo $idcargoc; ?>" name="idcargoc">
</div>
</div>
<div class="control-group">
<label class="control-label" id="bold">Cargo</label>
<div class="controls">
<input type="text" placeholder="Ingrese el Cargo" class="span2" value="<?php echo $descripcionc; ?>" name="descripcionc" onKeyDown="contador(this.form.descripcionc,this.form.remLen,20);" onKeyUp="contador(this.form.descripcionc,this.form.remLen,20);">
</div>
</div>
<div class="control-group">
<div class="controls">
<input class="span2" placeholder="" name="buscar" type="text" value="<?php echo $buscar ?>"/>
<input type="submit" name="subm" value="Buscar" class="btn btn-btn"/>
<input type="submit" name="subm" value="Ultimos Registros" class="btn btn-info" />
<div class="btn-group">
<a class="btn btn-primary" href="#"><i class="icon-user icon-white"></i></a>
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><input type="submit" name="subm" value="Guardar" class="btn-block btn-success" onClick="return ConfirmSave();"/></li>
<li><input type="submit" name="subm" value="Modificar" class="btn-block btn-warning" onClick="return ConfirmModify();"/></li>
</ul>
</div>
</div>
</div>
</form>
<?php switch($subm):?>
<?php case 'Modificar':?>
<?php if(preg_match("/^[0-9a-zA-ZñÑáéíóú]+$/",$descripcionc)):?> <?php $controlador_cargos->controlador_modificar_cargos($idcargoc,$descripcionc);?>
<script>
document.location = ('vista_cargos.php');
Modify();
</script>
<?php else:?>
<div class="alert alert-error" id="error">
<?php echo "Solo se permite texto,revise los datos ingresados.";?>
</div>
<?php endif;?>
<?php break;?>
<?php endswitch;?>
</div>
</div>
<script type="text/javascript" src="../js/widgets.js"></script>
<script src="../js/jquery.js"></script>
<script src="../js/bootstrap-transition.js"></script>
<script src="../js/bootstrap-alert.js"></script>
<script src="../js/bootstrap-modal.js"></script>
<script src="../js/bootstrap-dropdown.js"></script>
<script src="../js/bootstrap-scrollspy.js"></script>
<script src="../js/bootstrap-tab.js"></script>
<script src="../js/bootstrap-tooltip.js"></script>
<script src="../js/bootstrap-popover.js"></script>
<script src="../js/bootstrap-button.js"></script>
<script src="../js/bootstrap-collapse.js"></script>
<script src="../js/bootstrap-carousel.js"></script>
<script src="../js/bootstrap-typeahead.js"></script>
<script src="../js/bootstrap-affix.js"></script>
<script src="../js/holder/holder.js"></script>
<script src="../js/google-code-prettify/prettify.js"></script>
<script src="../js/application.js"></script>
</body>
</html>
Aqui uso la sintaxis alternativa porque a mi parecer se separa mejor el codigo PHP del HTML.
Eso es lo que he hecho hasta ahora, quisiera saber si esta bien o si tengo que mejorar algo o de plano lo estoy haciendo mal
.
Gracias de antemano.