Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/03/2006, 13:10
Greco
 
Fecha de Ingreso: mayo-2002
Ubicación: En MVD
Mensajes: 34
Antigüedad: 22 años
Puntos: 0
Hola Zen
Muchos de los compañeros del foro tendrán sus métodos propios y otros tantos se ceñirán a estándares al respecto.
Cada uno tiene sus puntos a favor y sus puntos en contra.
Tu iniciativa de encarar las tareas de programación abstraída de la presentación es muy buena, sin embargo la manera en que se puede abordar el tema es más que variada.
En lo personal he visto cosas extremadamente sencillas y rápidas pero poco flexibles... y he visto de las otras. Ambas cuestan un tiempo de aprendizaje y los resultados son a veces proporcionales a la complejidad y dedicación de la tarea que decidamos a realizar.
Yo puedo contarte mi modo de trabajo que podrán algunos compañeros compartir o criticar, pero mi ánimo es darte un panorama incial para que de allí en más tu veas lo más adecuado.

Imagínate que deseas mostrar una lista de proveedores de tornillos.

Tendríamos una librería que se encargaría de acceder a la base de datos, otra librería que realice las consultas y retorne resultados y 1 pagina que permita ver un listado de proveedores.

Un código de ejemplo podría ser el siguiente:

Código PHP:
<?
//este archivo se puede llamar listado_proveedores.php

include ("mi_libreria_proveedor.php");
$lista obtener_todos_los_proveedores();

?>
<table>
<?
foreach ($lista as $l)
{
?>
 <tr>
  <td><? echo $lista['nombre']?></td>
 </tr>
<?
}
?>
</table>
Y el archivo mi_libreria_proveedor.php tendría lo siguiente:
Código PHP:
<?
include ("mi_libreria_acceso_a_datos.php");
function 
obtener_todos_los_proveedores()
{
   
/*
   me conecto de alguna manera la base de datos y obtengo
   la conexion en la variable $conexion;

   podría realizar la conexión con ayuda de otra librería más, para poder
   centralizar en un único lugar el acceso a la base de datos... 

   esto me permite que en caso de errores o problemas tener que
   solucionarlos en único lugar.
   */

   
$sql "SELECT * FROM proveedores ORDER BY nombre";
   
$recordset mysql_query($sql$conexion);
      
   
$resultado = array ();
   
$i 0;
   while (
$fila mysql_fetch_array($recordset)) {
      
$resultado[$i]['nombre'] = $fila['nombre'];
      
$resultado[$i]['telefono'] = $fila['telefono'];
   }

   
//cierro la conexion si deseo

   //retorno el resultado
   
return $resultado;
}
?>
Como verás, no presté atención a ningún tipo de control (si el resultado de la consulta es 0 filas, etc.) para centrarme en la lógica general más que nada.

La idea es que tengas módulos (que como dije más arriba se pueden estructurar en funciones o en clases y métodos) que te otorguen acceso a tareas comunes (listar, insertar, eliminar, editar, etc), y desde el lugar que los utilizas (listado_proveedores.php) las invoques y retornen la información o el resultado de una operación. La interfaz solamente se dedicaría a mostrar más que nada, en vez de "hacer".

Como también dije más arriba hay técnicas bastante más complejas (pero no las domino ni mucho menos )

Espero que la idea haya sido ilustrativa, suerte !
Greco.-