CODIGO LIMPIO CON FUNCIONES PHP - MODULO I
Codigo limpio con funciones PHP - Modulo I
En este tutorial podras ver algunos consejos para que la programacion de algunas tareas cotidianas y bastante utilizada en PHP te sean mas leibles y comodas.
La estructura que seguire en este tutorial es:
1-9.- Tarea -> Tarea a realizar
a-z) Caso que puede surgir en dicha tarea, se explicara igualmente con la misma estructura los pasos a seguir...
CODIGO NORMALMENTE QUE UTILIZARIAMOS: "Codigo que normalmente o una variacion del mismo tendriamos que realizar para hacer dicha tarea"
PROBLEMA: "Explicacion breve de que problemas o inconvenientes podriamos encontrarnos con dicho codigo"
SOLUCION: "Que podemos hacer para evitar dichos problemas/inconvenientes"
CODIGO SIMPLIFICADO Y LIMPIO: "Codigo resultante para intentar evitar esos problemas"
// Aqui podras ver algunos comentarios y aclaraciones sobre el codigo
Ejemplo: "Codigo de ejemplo para que veas como se puede utilizar todo esto"
---------------------------------------------------------------------------------------------------------
1. - Tarea -> Conexion a nuestra BD MySQL con PHP
CODIGO NORMALMENTE QUE UTILIZARIAMOS:
|
<?
if (!($link=mysql_connect("localhost","usuario","password"))){ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("nombre_bd",$link)){ echo "Error seleccionando la base de datos."; exit(); } // En $link tendremos nuestra variable de conexion ?> |
PROBLEMA: Tener este codigo en cada fichero que vaya a utilizar una conexion con la BD (totalmente inviable)
SOLUCION: Escribir una funcion que podamos incluirla cada fichero que vayamos a utilizar una conexion con la BD
CODIGO SIMPLIFICADO Y LIMPIO:
|
<?
function conectar_bd() { $servidor="localhost"; $bd="nombre_bd"; $usu="usuario"; $pass="password"; if (!($link=mysql_connect($servidor,$usu,$pass))){ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db($bd,$link)){ echo "Error seleccionando la base de datos."; exit(); } return $link; } /* Para llamar a esta funcion desde cualquier archivo tendremos que incluir dicha funcion mediante un include() "recomendado" o tenerla declarada en el mismo fichero donde la llamamos "no recomendado"*/ // Llamaremos a la funcion de este modo: $link=conectar_bd(); // En $link tendremos nuestra variable de conexion ?> |
---------------------------------------------------------------------------------------------------------
2.- Tarea -> Consultas MySQL con funciones PHP
En un proyecto web complejo y grande tendremos que realizar multitud de consultas a tu BD.
a) Para consultas SQL que devuelva una tupla o registro
CODIGO NORMALMENTE QUE UTILIZARIAMOS:
|
<?
if (!($link=mysql_connect("localhost","usuario","password"))){ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("nombre_bd",$link)){ echo "Error seleccionando la base de datos."; exit(); } $res=mysql_query("SELECT * FROM tabla WHERE id=1",$link) or die (mysql_error()); $var=mysql_fetch_array($res); echo "Nombre: ".$var["nombre"]; /* * Podremos Acceder a los campos de la tupla mediante $var["nombre"], $var["id_ficha"], etc...*/ mysql_close ($link); ?> |
PROBLEMA: Una web normalmente puede tener 5 o mas consultas de Base de Datos... ¿Te imaginas la cantidad de codigo repetido?
SOLUCION: Simplificar al minimo numero de lineas la tarea de conectarse a la BD, y hacer una consulta
CODIGO SIMPLIFICADO Y LIMPIO:
|
<?
function select($sql){ $link=conectar_bd(); // Funcion creada anteriormente $res=mysql_query($sql,$link) or die (mysql_error()); $var=mysql_fetch_array($res); mysql_close ($link); return $var; } // Por ejemplo, la misma tarea de antes* podriamos conseguirla con una sola linea $var=select("SELECT * FROM tabla WHERE id=1"); // Ya podremos manejar los datos tales como $var["nombre"], $var["id_ficha"], etc... ?> |
b) Consultas SQL que devuelve mas de un registro (devuelven varias filas de una tabla en nuestra BD)
CODIGO NORMALMENTE QUE UTILIZARIAMOS:
|
<?
if (!($link=mysql_connect("localhost","usuario","password"))){ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("nombre_bd",$link)){ echo "Error seleccionando la base de datos."; exit(); } $res=mysql_query("SELECT * FROM tabla",$link) or die (mysql_error()); while ($r=mysql_fetch_array($res)){ echo $r["id"]."-".$r["nombre"]; //Aqui podremos manipular los datos de cada tupla ** } mysql_close ($link); ?> |
PROBLEMA: Sigue siendo demasiado largo, despues tenemos que manipular los datos, mostrarlo por pantalla....
SOLUCION: Nuevamente simplificar al maximo el codigo resultante para realizar dicha tarea
CODIGO SIMPLIFICADO Y LIMPIO:
|
<?
// Crearemos otra funcion para que nos devuelva una variable que sea la que iremos avanzando function selectmultiple($sql){ $link=conectar_bd(); $res=mysql_query($sql,$link) or die (mysql_error()); mysql_close ($link); return $res; } // La misma tarea de antes** la conseguiremos reducir a una sola linea... $var=selectmultiple("SELECT * FROM tabla"); while ($r=mysql_fetch_array($var)){ echo $r["id"]."-".$r["nombre"]; //Aqui manejamos los datos de cada fila/tupla ?> |
Ejemplo:
Ahora podres ver un ejemplo real... de como utilizar de una forma correcta el codigo del tutorial.
|
<?
//Crearemos un fichero llamado "libreria.php" donde tendremos las funciones creadas anteriormente function conectar_bd(){ $servidor="localhost"; $bd="nombre_bd"; $usu="usuario"; $pass="password"; if (!($link=mysql_connect($servidor,$usu,$pass))){ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db($bd,$link)){ echo "Error seleccionando la base de datos."; exit(); } return $link; } // Consulta que devuelve una sola tupla function select($sql){ $link=conectar_bd(); $res=mysql_query($sql,$link) or die (mysql_error()); $var=mysql_fetch_array($res); mysql_close ($link); return $var; } // Consulta que devuelve mas de una fila/tupla function selectmultiple($sql){ $link=conectar_bd(); $res=mysql_query($sql,$link) or die (mysql_error()); mysql_close ($link); return $res; } ?> |
|
<?
// En otro fichero donde tengamos que realizar alguna consulta haremos lo siguiente include("libreria.php"); //Codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo, ......... // Queremos ver los nombres y apellidos de una persona que pasamos el id por la cabecera mediante GET $r=select("SELECT nombre,apellido FROM tabla WHERE id=".$_GET["id"].""); echo "El nombre es: ".$r["nombre"]." y los apellidos ".$r["apellido"]; // Codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo,codigo, ......... // Queremos ver los nombres y apellidos de todos los empleados da empresa $res=selectmultiple("SELECT * FROM tabla"); echo "Los nombres de los empleados son: "; while ($r=mysql_fetch_array($res)){ echo "Nombre: ".$r["nombre"]." Apellido ".$r["apellido"]; //Aqui manejamos los datos de cada fila/tupla } ?> |
Creo que puedes comprobar tu mismo el alcance de estos "truquitos" para programar de una forma mas rapida y comoda.
Te aconsejo que te aconstumbres a programar de este modo ya que habra un momento que tu proyecto sea totalmente inabarcable, complicado y pesado...
Un saludo, cualquier duda respecto al tutorial no dudeis en hacerla en el foro de Rentabilizar-Web.
Rentabilitech - "Programando Ideas"
Comentarios: (2)

Visitante único / clic

















