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.
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):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Documento sin tí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...<?
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 visualesAgregamos lo siguiente en el
HEAD.
<script>
function efecto(id,tip)
{
var col = "#3399FF";
if(tip==2){col="";}
var cel = document.getElementById(id);
cel.style.backgroundColor=col;
}
</script>
<?
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<?
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);
?>
<?
$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.
<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>
<?
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.
Implementacion en una clase
Crear archivo JS con el nombre de home.js: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:<?
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
<script src='home.js'></script>
Agregar en el body
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.