[MiniTuto] Funcion para listar tabla de MySql con Php

Iniciado por Hadess_inf, 7 Agosto 2009, 03:10 AM

0 Miembros y 1 Visitante están viendo este tema.

Hadess_inf

MiniTuto

Buen día a todos, pues tenía un poco de tiempo libre así que me anime a escribir este pequeño tutorial. Pues se trata de implementar una función que genere una lista según un conjunto de  parámetros enviados por el usuario. La idea es implementar la función y llamarla desde cualquier página, veamos como va esto:

Base de datos: Crear la BD web y dentro la siguiente consulta.
Código (sql) [Seleccionar]

CREATE TABLE `personal` (
`dni` VARCHAR( 8 ) NOT NULL ,
`nombres` VARCHAR( 30 ) NOT NULL ,
`apellidos` VARCHAR( 30 ) NOT NULL ,
`fecnac` DATE NOT NULL ,
PRIMARY KEY ( `dni` )
) ENGINE = MYISAM ;

INSERT INTO `personal` VALUES ('45784785', 'Juan Carlos', 'Guerrero Irigoin', '1985-08-08');
INSERT INTO `personal` VALUES ('45985521', 'Pedro Ricardo', 'Garcia Lopez', '1983-03-16');


Abrimos el dreamweaver y seleccionamos Crear nuevo PHP. Nos dirigimos a la vista de código y empezamos con el trabajo (modificar para que quede de siguiente manera):
Código (html4strict) [Seleccionar]

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Documento sin t&iacute;tulo</title>
</head>
<body>

</body>
</html>


A continuación trabajaremos en la zona del body, todas las etiquetas que a continuación venga iran dentro de él. Empezemos:

1) Listando...

Código (php) [Seleccionar]
<?
function lista($que)
{
 $con = mysql_connect('localhost','root','root');
 mysql_select_db('web',$con);
 $res = mysql_query($que);

 echo "<table border='1'>";
 while($row=mysql_fetch_array($res))
 {
   echo "<tr>";
   for($i=0;$i<mysql_num_fields($res);$i++)
   {
     echo "<td>".$row[$i]."</td>";
   }
   echo "</tr>";
 }
 echo "</table>";
}
?>
Empieza el listado
<?
 $sql = "select dni,nombres,apellidos,fecnac from personal";
 lista($sql);
?>


2) Agregando efectos visuales

Agregamos lo siguiente en el HEAD.
Código ( ‫ ‫javascript) [Seleccionar]
<script>
function efecto(id,tip)
{
 var col = "#3399FF";
 if(tip==2){col="";}
 var cel = document.getElementById(id);
 cel.style.backgroundColor=col;
}
</script>


Código (php) [Seleccionar]
<?
function lista($que)
{
 $con = mysql_connect('localhost','root','root');
 mysql_select_db('web',$con);
 $res = mysql_query($que);

 echo "<table border='1'>";
 while($row=mysql_fetch_array($res))
 {
   echo "<tr id='tr$row[0]' onmouseover=efecto('tr$row[0]',1); onmouseout=efecto('tr$row[0]',2); style='cursor:pointer'>";
   for($i=0;$i<mysql_num_fields($res);$i++)
   {
     echo "<td>".$row[$i]."</td>";
   }
   echo "</tr>";
 }
 echo "</table>";
}
?>
Empieza el listado
<?
 $sql = "select dni,nombres,apellidos,fecnac from personal";
 lista($sql);
?>


3) Agregando formato

Código (php) [Seleccionar]
<?
function lista($que,$ali,$wid)
{
 $con = mysql_connect('localhost','root','root');
 mysql_select_db('web',$con);
 $res = mysql_query($que);

 echo "<table border='1'>";
 while($row=mysql_fetch_array($res))
 {
   echo "<tr id='tr$row[0]' onmouseover=efecto('tr$row[0]',1); onmouseout=efecto('tr$row[0]',2); style='cursor:pointer'>";
   for($i=0;$i<mysql_num_fields($res);$i++)
   {
     echo "<td width='$wid[$i] px' align='$ali[$i]'>".$row[$i]."</td>";
   }
   echo "</tr>";
 }
 echo "</table>";
}
?>
Empieza el listado
<?
 $sql = "select dni,nombres,apellidos,fecnac from personal";
 lista($sql);
?>


Código (php) [Seleccionar]
<?
$sql = "select dni,nombres,apellidos,fecnac from personal"; //consulta
$ali = array("center","left","left","center"); //alineacion
$wid = array(50,350,200,150); //width
lista($sql,$ali,$wid);
?>


4) Agregando iconos: En el directorio crear una carpeta (img) y pegar 2 imagenes.

Código ( ‫ ‫javascript) [Seleccionar]
<script>
function efecto(id,tip)
{
 var col = "#3399FF";
 if(tip==2){col="";}
 var cel = document.getElementById(id);
 cel.style.backgroundColor=col;
}
function llama(php)
{
 document.location.href=php;
}
</script>


Código (php) [Seleccionar]
<?
function lista($que,$ali,$wid,$ico)
{
 $con = mysql_connect('localhost','root','root');
 mysql_select_db('web',$con);
 $res = mysql_query($que);

 echo "<table border='1'>";
 while($row=mysql_fetch_array($res))
 {
   echo "<tr id='tr$row[0]' onmouseover=efecto('tr$row[0]',1); onmouseout=efecto('tr$row[0]',2); style='cursor:pointer'>";
   foreach($ico as $sel=>$val)
   {
     echo "<td align='center' width='20px' onclick=llama('".$val[2]."?id=".$row[0]."');><img src='img/".$val[0]."' title='".$val[1]."'></td>";
   }
   for($i=0;$i<mysql_num_fields($res);$i++)
   {
     echo "<td width='$wid[$i] px' align='$ali[$i]'>".$row[$i]."</td>";
   }
   echo "</tr>";
 }
 echo "</table>";
}
?>
Empieza el listado
<?
$sql = "select dni,nombres,apellidos,fecnac from personal"; //consulta
$ali = array("center","left","left","center"); //alineacion
$wid = array(50,350,200,150); //width
$ico = array(
 array("angry.gif","Click para ver detalles","detalles.php"),
 array("cheesy.gif","Click para modificar","modificar.php")
);
lista($sql,$ali,$wid,$ico);
?>


Y es todo, solo faltaria implementar en una clase y llamarla cuando se necesite, espero sea de su utilidad, como siempre si tienen dudas, pues hablen o callen para siempre.

Saludos.

Hadess_inf

#1
Implementacion en una clase

Crear archivo JS con el nombre de home.js:

Código ( ‫ ‫javascript) [Seleccionar]
function efecto(id,tip)
{
 var col = "#3399FF"
 if(tip==2){col=""}
 var cel = document.getElementById(id)
 cel.style.backgroundColor=col
}
function llama(php)
{
 document.location.href=php
}


Crear archivo PHP con el nombre de funciones.php:

Código (php) [Seleccionar]
<?
class Funciones
{
 var $conexion;
 //inicia conexion con el servidor
 function conecta()
 {
if(!isset($this->conexion))
{
$ser = "localhost"; //servidor
$usr = "root"; //usuario
$pwd = "root"; //password
$bbd = "web"; //base de datos
$this->conexion = (mysql_connect($ser,$usr,$pwd)) or die(mysql_error());
mysql_select_db($bbd,$this->conexion) or die(mysql_error());
}
 }

 //realiza la consulta recepcionada
 function consulta($consulta)
 {
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado)
{
echo 'MySql Error: '.mysql_error();
exit;
}
return $resultado;
 }
 
 //funcion para listar
 function lista($res,$ali,$wid,$ico)
 {
   echo "<table border='1'>";
   while($row=mysql_fetch_array($res))
   {
     echo "<tr id='tr$row[0]' onmouseover=efecto('tr$row[0]',1); onmouseout=efecto('tr$row[0]',2); style='cursor:pointer'>";
     foreach($ico as $sel=>$val)
     {
       echo "<td align='center' width='20px' onclick=llama('".$val[2]."?id=".$row[0]."');><img src='img/".$val[0]."' title='".$val[1]."'></td>";
     }
     for($i=0;$i<mysql_num_fields($res);$i++)
     {
       echo "<td width='$wid[$i] px' align='$ali[$i]'>".$row[$i]."</td>";
     }
     echo "</tr>";
   }
   echo "</table>";
 }
}
?>


Crear pagina php con el nombre de index.php:Debe quedar asi:

Agregar en el head
Código (javascript) [Seleccionar]
<script src='home.js'></script>

Agregar en el body
Código (php) [Seleccionar]
Empieza el listado
<?
include("funciones.php");
$fun = new Funciones();
$fun->conecta();

$sql = "select dni,nombres,apellidos,fecnac from personal"; //consulta
$ali = array("center","left","left","center"); //alineacion
$wid = array(50,350,200,150); //width
$ico = array(
 array("angry.gif","Click para ver detalles","detalles.php"),
 array("cheesy.gif","Click para modificar","modificar.php")
);
$res = $fun->consulta($sql);
$fun->lista($res,$ali,$wid,$ico);
?>


Saludos.