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:
En la carpeta model tengo las consultas a la base de datos.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; } } } ?>
Código PHP:
- Aquí mi primera duda, si yo quisiera hacer un paginador la lógica iría en el 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(); } } ?>
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:
Aqui solo recibo la consulta y tengo entendido que aqui no deberia haber nada de html correcto?.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); } } ?>
Y la view lo tengo asi:
Código PHP:
Aqui uso la sintaxis alternativa porque a mi parecer se separa mejor el codigo PHP del HTML.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(); ?> <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 $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>
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.