domingo, 31 de octubre de 2010

pyRacerz

PyRacerz es un sencillo juego de carreras multijugador, posee una sencilla interfaz y sus movimientos son un poco complicados. Es un juego que seguramente será muy útil a quienes tengan equipos de pocos recursos o para divertir a los más pequeños, pero no es muy atractivo para quienes buscan juegos con mayor realidad o complejidad.

Para instalarlo vamos a una terminal (Aplicaciones - Accesorios - Terminal) y escribimos lo siguiente:

sudo apt-get install pyracerz

Luego de instalado lo encontramos en Aplicaciones - Juegos - pyRacerz


Página oficial | http://pyracerz.sourceforge.net/

jueves, 28 de octubre de 2010

Dale nueva vida a Gnome-Clock

Si quieres darle un toque personal al reloj del panel de gnome y hacerlo mas tuyo, entonces que esperas!!!

A continuación presento un tutorial para personalizar el reloj del panel con tres ejemplos que puedes usar y también les dejo la lista de los formatos que puedes aplicarle y personalizarlo a tu placer.

miércoles, 27 de octubre de 2010

domingo, 24 de octubre de 2010

Ubunchu - Anime sobre Ubuntu

Hola, me ha llegado esto de la lista de Ubuntu Colombia y quisiera compartirlo con todos ustedes. Se trata de Ubunchu, un comic que muestra tres estudiantes, cada uno representando los 3 sistemas operativos más populares (Linux, Windows y Mac) y no saben que SO instalar en el servidor de su colegio. No dejen de ver este comic para que se enteren por cual se decidieron y como les fue.

http://www.dacostabalboa.com/es/descargar-ubunchu-en-espanol/4768

domingo, 17 de octubre de 2010

Instalar java en Maverick

Hasta ahora no había podido instalar maverick, ahora que tuve un tiempo lo hice y me di cuenta que para instalar limewire tenía que instalar el java y no era igual que en Lucid, así que me puse a inivestigar y ahora les muestro como lo hice.

sudo add-apt-repository ppa:sun-java-community-team/sun-java6
sudo aptitude update && sudo aptitude install sun-java6

Visto en | http://www.ubuntugeek.com/

viernes, 15 de octubre de 2010

OpenOffice Asusta a Micro$oft

Este video ha estado dando vueltas y se trata nada más y nada menos de un intento del monopolizador Micro$oft por desprestigiar el software libre, en este caso arremete contra OpenOffice.

Personalmente pienso que es miedo de Bill Gates, y es que esta clase de arremetidas no es nueva. Hace un tiempo se unió con Yahoo para intentar derrocar a Google, luego lanzó Office Online para competir con Google Docs, incluso se unió a otras empresas de buscadores (no recuerdo cuales) y demandaron a google por monopolio (¡que sinismo!). No se que piensen ustedes que pero personalmente a los colombianos nos gusta lo bueno y gratis, así que OpenOffice sigue vivo, y si no fuere así bienvenido LibreOffice.

Pero bueno, juzquen ustedes



Activar/Desactivar vista de conversación en gmail

Gmail por defecto tiene la configuración del correo en vista de conversación, esto quiere decir que los mensajes con el mismo asunto se sitúan uno debajo del otro como si de un solo mensaje se tratase, personalmente yo veo esto muy útil, ¿por qué? Supongamos que nos envían una de esas dichosas cadenas una y otra vez, en otros servicios tendrímos un correo por cada mensaje, por otra parte, en gmail, tenemos una sola conversación, de esta manera solo debemos mirar uno de los mensajes y evitamos llenar nuestra bandeja de entrada.

En fin, habrá quien no esté de acuerdo y prefiera tener el reguero de correos para presumir que le escriben bastante. Para aquellos que quieran desactivar esta función deben ir a la configuración en la parte superior derecha y buscar la sección "vista de conversación" activándola para agrupar los mensajes y desactivándola para desagruparlos.

jueves, 14 de octubre de 2010

Cambiar e insertar registros en mayúscula - MYSQL

Hace unos momentos necesitaba modificar una base de datos, necesitaba que todos los registros estuvieran en may&uaacute;scula y para mayor seguridad que los próximos también se insertaran de esta manera, acá los códigos para ambos casos:

Insertar:
Basta agregar UPPER antes de campo. ej:
insert into empleado values('cedula',UPPER('nombre'),UPPER('apellido1'),UPPER('apellido2');

Modificar:
Si tenemos registros y deseamos pasarlos a mayúscula debemos tener en cuenta el campo y la tabla. ej:
update empleado set apellido2 = UPPER(apellido2)

Busca mientras escribe. ¿nueva función en google?

Hola, hace unos instantes estaba buscando información sobre mi ciudad, quien no lo sepa tengo un sitio Web sobre ella (ladoradacaldas.net) y estaba buscando que otras páginas hay para ofrecer intercambio de enlaces y publicidad. El punto es que abrí google y empecé a escribir "la dorada caldas", pero esta vez lo hice despacio y quedé muy sorprendido al ver que los resultados iban cambiando a medida que ingresaba una letra, es decir, que ya no es necesario escribir la frase y dar enter o clic en el botón buscar para obtener resultados. No estoy seguro desde cuando google tiene esta función, pero si debo decir que me parece supremamente interesante.

sábado, 9 de octubre de 2010

viernes, 8 de octubre de 2010

Crear gráficos con jpgraph

Jpgraph es una librería que nos permite crear gráficos en PHP y que se puede descargar desde acá.

Vamos a suponer para este ejemplo que tenemos una tabla "elementos" en la que almacenamos el nombre de los materiales y otra "entregasdiarias" en la llevamos un registro de que materiales se asignan a los empleados.

Supongamos que queremos graficar la cantidad total por cada elemento pero solo los elementos que han sido asignados al menos una vez. Este código muestra el porcentaje por elemento.

<?php
require_once("jpgraph\src\jpgraph.php");
require_once("jpgraph\src\jpgraph_pie.php");
require_once("conexion.php");

//******* GUARDAR LOS NOMBRES DE LOS ELEMENTOS EN UN VECTOR **********

$sql = "SELECT * FROM elementos";
$res = mysql_query($sql,$con);
$i=0;

while($row = mysql_fetch_assoc($res)){
$vector[$i] = $row['nombre']; //guardo los nombres de los elementos en un arreglo
$i++;
}

//*****************************************************************

$c=0;

for($f=0;$f<$i;$f++){
$sql = "SELECT * FROM `entregasdiarias` WHERE material LIKE '%".$vector[$f]."%'"; //busco cada elemento
$res = mysql_query($sql,$con);
if(mysql_num_rows($res)>0){ //verifico que exista algún elemento
$row = mysql_num_rows($res); //determino la cantidad
$datay[$c] = $row; //almaceno cada resultado en un arreglo
$c++;
}
}

mysql_close($con);

//****************************************************

#crear la grafica haciendo 2 llamadas que siempre van a ser requeridas
$graph = new PieGraph($c*60,$c*48,'auto'); //dimensiones ancho,alto
$graph->SetScale('textlin');

$graph->SetShadow(); //adherir sombra
$bplot = new PiePlot($datay); //crear la barra
$bplot->SetLegends($vector); //leyenda
$bplot->SetCenter(0.32);

$graph->Add($bplot); //añadimos el bplot a la grafica

#configurar los titulos
$graph->title->Set("Cantidad de elementos asignados"); //titulo del grafico
$graph->xaxis->title->Set('Elementos'); //titulo para el eje x
$graph->yaxis->title->Set('Cantidad'); //titulo para el eje y

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->stroke(); //mostrar la grafica
?>


Ver mensaje sin abrirlo en gmail

Este un complemento interesante de gmail, el cual muestra un mensaje en un cuadro auxiliar al oprimir el clic derecho sin salir de la bandeja de entrada, para activarlo vamos a los labs (icono verde en la parte superior derecha) y buscamos "avance del contenido del mensaje" (el segundo en la lista).y le damos habilitar. al volver a la bandeja de entrada no ubicamos en cualquie correo y damos clic derecho y listo.


jueves, 7 de octubre de 2010

graficar cantidad de elementos con jpgraph

Este es un tema que casi me saca canas. Resulta que tengo una tabla de elementos y una de empleados ("empleado"); a un empleado se le asigna(n) cierto(s) elemento(s) de trabajo. Los datos son almacenados en la tabla "entregasdiarias". El propósito de este código es conocer la cantidad de cada elemento entregado y graficar el resultado.


<?php
require_once("jpgraph\src\jpgraph.php");
require_once("jpgraph\src\jpgraph_bar.php");
require_once("conexion.php");

$sql = "SELECT * FROM elementos";
$res = mysql_query($sql,$con);
$i=0;

while($row = mysql_fetch_assoc($res)){

$vector[$i] = $row['nombre']; //guardo los nombres de los elementos en un arreglo
$i++;
}

//*****************************************************************

for($f=0;$f<$i;$f++){
$sql = "SELECT * FROM `entregasdiarias` WHERE material LIKE '%".$vector[$f]."%'"; //busco cada elemento
$res = mysql_query($sql,$con);
$row = mysql_num_rows($res); //determino la cantidad

$datay[$f] = $row; //almaceno cada resultado en un arreglo
}
mysql_close($con);

//****************************************************

#crear la grafica haciendo 2 llamadas que siempre van a ser requeridas
$graph = new Graph(800,600); //dimensiones
$graph->SetScale('textlin');
$graph->SetShadow(); //adherir sombra

#margenes
$graph->SetMargin(40,20,20,40); //izq, der, sup, inf
$bplot = new Barplot($datay); //crear la barra
$bplot->SetFillColor('green'); //ajustar el color
$graph->Add($bplot); //añadimos el bplot a la grafica

#configurar los titulos
$graph->title->Set("Cantidad de elementos asignados");
$graph->xaxis->title->Set('datos');
$graph->yaxis->title->Set('cantidad');
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->stroke(); //mostrar la grafica
?>

Administra el Harware y el Consumo de energia con JUPITER!

Jupiter es un administrador de hardware y consumo de energía hecho especialmente para laptops, notebooks y netbooks, con el cual fácilmente podemos encender o apagar el wi-fi, el touchpad, cambiar la resolución de pantallas, entre otras opciones de netbooks equipadas con el CPU Atom de Intel. Ademas también activa las teclas Fn en las EeePC.

Jupiter es el equivalente al Super Hibrid Engine de las EeePC de Asus, pero que ademas se adapta a cualquier equipo portátil, no solo a las netbooks.



Puedes instalarlo fácilmente desde repositorios o usando archivos .deb. A continuación te detallo la instalación mediante cualquiera de estos métodos.

 Metodo I: PPA
  • Aprega el siquiente PPA (para Ubuntu 9.04, 10.04 y 10.10) 
sudo add-apt-repository ppa:webupd8team/jupiter && sudo apt-get update
  • Instala Jupitar con el siguiente comando
sudo apt-get install jupiter
  • Si eres usuario de EeePC instala tambien
sudo apt-get install jupiter-support-eee
Metodo II: paquete .deb
  • Descargar Jupiter y Jupiter-Support-Eee si usas una EeePC desde aqui
Click para descargar
Adiciono aqui dos juegos de iconos monocromaticos, para que le haga juego con el resto de los iconos del panel. Uno para paneles claros y otro para paneles oscuros.
El de paneles claros fue creado por Nickcampbell y los pueden descargar aqui
Los de paneles oscuros los he hecho yo mismo y los pueden descargar aqui

Despues de descargarlos presionan Alt+F2 y escriben
gksu nautilus /usr/share/pixmaps/jupiter/
Y remplazan los iconos de esa carpeta con los que descargaron.

Espero les sea de provecho esta formidable aplicación.

miércoles, 6 de octubre de 2010

Graficar un select count

En este ejemplo sencillo vamos a suponer que tenemos una base de datos con una tabla de elementos de trabajo y deseamos graficar por ejemplo la cantidad de guantes asignados. Para eso hacemos un select count sobre la tabla, luego almacenamos ese valor en una variable y por ultimo graficamos usando jpgraph que pueden descargar desde acá.

Antes que nada mencionar que la conexión se realiza desde el archivo "conexion.php" y que la libreria jpgraph se utiliza para realizar gráficos.

Este es el codigo

<?php
require_once("jpgraph\src\jpgraph.php");
require_once("jpgraph\src\jpgraph_bar.php");
require_once("conexion.php");

$sql="SELECT count( * ) as cuenta FROM `entregasdiarias` WHERE material LIKE '%Guante Vaqueta%'"; //buscamos el registro guante

$res=mysql_query($sql,$con);

$row = mysql_fetch_array($res); //obtiene el resultado de la consulta

#entrada de datos
$datay = array($row['cuenta']); //almaceno el dato en el vector

#crear la grafica haciendo 2 llamadas que siempre van a ser requeridas
$graph = new Graph(800,600); //dimensiones
$graph->SetScale('textlin');
$graph->SetShadow(); //adherir sombra

#margenes
$graph->SetMargin(40,30,40,40); //izq, der, sup, inf
$bplot = new Barplot($datay); //crear la barra
$bplot->SetFillColor('green'); //ajustar el color
$graph->Add($bplot); //añadimos el bplot a la grafica

#configurar los titulos
$graph->title->Set("Cantidad de Guante Vaqueta pedidos");
$graph->xaxis->title->Set('datos');
$graph->yaxis->title->Set('cantidad');
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->stroke(); //mostrar la grafica
?>


Cargar dinámicamente casillas de verificación y almacenar sus valores

Supongamos que tenemos un formulario en el cual le preguntamos los intereses al usuario por ej: ver tv, deporte, leer, etc. y queremos almacenar todos estos valores. En este ejercicio vamos a ver como teniendo una tabla llamado elementos podemos extraer el contenido de allí y poner las opciones y casillas de verificación y se almacenará el valor de las casillas seleccionadas por el usuario en este caso en la tabla prueba. En este arhivo se hace una llamada a "conexión.php" que contiene el código necesario para conectarse a la base de datos.

checkbox.php

<?php
require_once("conexion.php");
$sql="SELECT * FROM elementos";
$res=mysql_query($sql,$con);
?>
<html>
<head>
</head>
<body>
<form action="checkbox1.php" method="get">
<table>
<tr>
<td>Cedula<input type="text" name="cedula"></td>
</tr>
<?php
while($reg=mysql_fetch_array($res)){
?>
<tr>
<td>
<input type="checkbox"  value="<?php echo $reg["nombre"] ?>" name="material[]"/>
</td>
<td>
<?php
echo $reg["nombre"];
?>
<br />
<?php
} //cierre while
?>
</td>
<td>
<input type="submit" value="Enviar" name="enviar">
<?php mysql_close($con); ?>
</td>
</tr>
</table>
</form>
</body>
</html>


checkbox1.txt

<?php
require_once("conexion.php");

#obtiene los valores
echo $_GET["cedula"]."<br>";

#guarda los valores en el vector material
$i=0;
$materiales="";

foreach ($_GET['material'] as $id){
   $material[$i]=$id;
   $materiales="".$material[$i].", ".$materiales."";
   $i++;
}

$sql="INSERT INTO prueba() VALUES(null,'".$_GET['cedula']."','".$materiales."')";
$res=mysql_query($sql,$con);
?>


martes, 5 de octubre de 2010

Modificar 2 tablas relacionadas

Ya había hablado sobre esto, esta vez es un complemento al anterior. En esta ocasión vamos a modificar también el campo cedula.

Supongamos que queremos modificar los campos de dos tablas que están relacionadas, en este ejemplo "empleado" y "entregasdiarias" relacionados por el campo "cedula".

Para ello hemos creado un archivo llamado "modificarempleado.php", el cual carga los datos de un usuario seleccionado buscándolo por la cédula.

El otro archivo se llama "edit.php", que se encarga de llevar a la base de datos los cambios realizados en el formulario del archivo anterior.

En este ejemplo vamos a cambiar los campo "cedula, nombre, apellido1, apellido2" en las tablas empleado y entregas diarias.

Debido que existe la posibilidad de cambiar la cédula, esta fue la forma que encontré para poder lograrlo.



modificaempleado.php




<?php
require_once("conexion.php");
$sql="select * from empleado where cedula=".$_GET["cedula"]."";
$res=mysql_query($sql,$con);
?>
<html>
<head>
<title>Listado de Entregas Diarias</title>
</head>
<body>
<?php

if ($reg=mysql_fetch_array($res))
{
?>
<table width="715" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          </table>     
        </td>
      </tr>
    </table>
   </td>
  </tr>
  <tr>
    <td height="171" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="715" height="171" valign="top">
<form name="form" method="post" action="edit.php">
          <p>Imformacion del Empleado </p>
          <div align="center">
            <table width="608" border="1">
              <tr>
                <td width="451" height="26" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="86" height="22" valign="top">Cedula</td>
                        <td width="31"> </td>
                        <td width="174" valign="top"><label>
                          <input name="cedula" type="text" id="cedula" value="<?php echo $reg["cedula"];?>">
                          </label></td>
                        <td width="160"> </td>
                      </tr>
                  </table></td>
                  <td width="9"></td>
                  <td width="112"></td>
                  <td width="7"></td>
                </tr>
              <tr>
                <td height="23" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="104" height="19" valign="top">Nombres </td>
                        <td width="344" valign="top"><label>
                          <input name="nombre" type="text" id="nombre" size="50" value="<?php echo $reg["nombre"];?>">
                          </label></td>
                        <td width="18"> </td>
                      </tr>
                  </table></td>
                  <td> </td>
                  <td></td>
                </tr>
              <tr>
                <td height="23" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="105" height="19" valign="top">Primer Apellido </td>
                        <td width="166" valign="top"><label>
                        <input name="apellido1" type="text" id="apellido1" value="<?php echo $reg["apellido1"];?>">
                        </label></td>
                        <td width="119" valign="top">Segundo Apellido </td>
                        <td width="194" valign="top"><label>
                          <input name="apellido2" type="text" id="apellido2" value="<?php echo $reg["apellido2"];?>">
                          </label></td>
                      </tr>
                  </table></td>
                  <td></td>
                </tr>
              <tr>
                <td height="37" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="172" height="33" valign="top">Fecha Ingreso </td>
                    <td width="403" valign="top"><label>
                      <input name="fechaingreso" type="text" id="fechaingreso" value="<?php echo $reg["fechaingreso"];?>">
                    aaaa/mm/dd</label></td>
                    <td width="9"> </td>
                  </tr>
                </table>                </td>
                  <td></td>
                </tr>
              <tr>
                <td height="53" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="584" height="19" valign="top"><label>
                      <div align="center">
<input type="hidden" name="ced" value="<?php echo $_GET["cedula"];?>">
<input type="button" value="Volver" title="Volver" onClick="history.back();" />
||
<input type="button" value="Modificar" title="Modificar" onClick="validar()" />
                        </div>
                          </label></td>
                        </tr>
                </table></td>
                  <td></td>
              </tr>
              <tr>
                <td height="11"></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </table>
          </div>
          <p>
            <label></label>
          </p>
          </form>
  <?php
}
?>
</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td height="117"> </td>
  </tr>
</table>
</body>
</html>




edit.php




<!-- CODIGO PARA SIMULAR QUE NO SE HA AVANDONADO LA PÁGINA EN LUGRAR DE MOSTRAR UN PÁGINA EN BLANCO - NO PONER ATENCIÓN -->
<html>
<head>
<title>Listado de Entregas Diarias</title>
<script language="javascript" type="text/javascript" src="js/funciones.js"></script>
</head>
<body>
<table width="715" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="217" height="124" valign="top"><img src="imagenes/logo.jpg" width="178" height="106"></td>
          </tr>
        </table>        </td>
        <td width="498" valign="top"><p align="center">Control </p>
          <p align="center">Material de Proteccion </p></td>
      </tr>
    </table>    </td>
  </tr>
  <tr>
    <td height="171" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="715" height="171" valign="top">
<form>
          <p>Imformacion del Empleado </p>
          <div align="center">
            <table width="608" border="1">
              <tr>
                <td width="451" height="26" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="86" height="22" valign="top">Cedula</td>
                        <td width="31"> </td>
                        <td width="174" valign="top"><label>
                          <input name="cedula" type="text" id="cedula" value="<?php echo $_POST["cedula"];?>">
                          </label></td>
                        <td width="160"> </td>
                      </tr>
                  </table></td>
                  <td width="9"></td>
                  <td width="112"></td>
                  <td width="7"></td>
                </tr>
              <tr>
                <td height="23" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="104" height="19" valign="top">Nombres </td>
                        <td width="344" valign="top"><label>
                          <input name="nombre" type="text" id="nombre" size="50" value="<?php echo $_POST["nombre"];?>">
                          </label></td>
                        <td width="18"> </td>
                      </tr>
                  </table></td>
                  <td> </td>
                  <td></td>
                </tr>
              <tr>
                <td height="23" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="105" height="19" valign="top">Primer Apellido </td>
                        <td width="166" valign="top"><label>
                        <input name="apellido1" type="text" id="apellido1" value="<?php echo $_POST["apellido1"];?>">
                        </label></td>
                        <td width="119" valign="top">Segundo Apellido </td>
                        <td width="194" valign="top"><label>
                          <input name="apellido2" type="text" id="apellido2" value="<?php echo $_POST["apellido2"];?>">
                          </label></td>
                      </tr>
                  </table></td>
                  <td></td>
                </tr>
              <tr>
                <td height="37" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="172" height="33" valign="top">Fecha Ingreso </td>
                    <td width="403" valign="top"><label>
                      <input name="fechaingreso" type="text" id="fechaingreso" value="<?php echo $_POST["fechaingreso"];?>">
                    aaaa/mm/dd</label></td>
                    <td width="9"> </td>
                  </tr>
                </table>                </td>
                  <td></td>
                </tr>
              <tr>
                <td height="53" colspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="584" height="19" valign="top"><label>
                      <div align="center">
<input type="button" value="Volver" title="Volver" onClick="history.back();" />
||
<input type="button" value="Modificar" title="Modificar" onClick="validar()" />
                        </div>
                          </label></td>
                        </tr>
                </table></td>
                  <td></td>
              </tr>
              <tr>
                <td height="11"></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </table>
          </div>
          <p>
            <label></label>
          </p>
          </form>
</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td height="117"> </td>
  </tr>
</table>
</body>
</html>

<!-- EL CODIGO ANTERIOR ES PARA SIMULAR QUE NO SE HA AVANDONADO LA PÁGINA EN LUGRAR DE MOSTRAR UNA EN BLANCO - NO PONER ATENCIÓN -->

<?php

require_once("conexion.php"); //llama el archivo de conexión a la base de datos

//modifica la tabla empleados

$sql="UPDATE empleado
SET
cedula='".$_POST["cedula"]."',
nombre='".$_POST["nombre"]."',
apellido1='".$_POST["apellido1"]."',
apellido2='".$_POST["apellido2"]."',
fechaingreso='".$_POST["fechaingreso"]."'
WHERE
cedula=".$_POST["ced"].""; //el campo ced es un campo oculto en modificaempleado.php que contiene la cedula antigüa

$res=mysql_query($sql,$con);

#Modifica el nombre en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
nombre = (
  SELECT nombre FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

//echo $sql;

$res=mysql_query($sql,$con);

#Modifica el apellido 1 en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
apellido1 = (
  SELECT apellido1 FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

//echo $sql;

$res=mysql_query($sql,$con);

#Modifica el apellido 2 en la tabla  entregas diarias con los datos de la tabla emplead

$sql="
UPDATE entregasdiarias
SET
apellido2 = (
  SELECT apellido2 FROM empleado
  WHERE empleado.cedula=".$_POST["cedula"]."
)
WHERE
cedula=".$_POST["ced"]."
";

$res=mysql_query($sql,$con);

#Modifica la cédula en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
cedula = (
  SELECT cedula FROM empleado
  WHERE empleado.nombre=entregasdiarias.nombre
  AND empleado.apellido1=entregasdiarias.apellido1
  AND empleado.apellido2=entregasdiarias.apellido2
)
WHERE
cedula=".$_POST["ced"]."
";

$res=mysql_query($sql,$con);

mysql_close($con);

//************************************

echo "<script type=''>
alert('Los datos del empleado fueron modificados correctamente');
window.location='empleados.php';
</script>";
?>


lunes, 4 de octubre de 2010

ordenar una tabla de resultados usando combobox

Vamos a suponer que tenemos una base de datos en la cual realizamos una búsqueda y mostramos los resultados en una tabla y luego queremos ordenar el resultado por un criterio específico.

En este ejemplo voy a dejar 3 archivo: el primero es un buscador sobre la base de datos de un empleado. El segundo es el archivo que muestra los resultados y presenta un combo para poder ordenar dependiendo de tres criterio: cedula, nombre o apellido. El tercer archivo es similar al segundo y permite realizar una segunda búsqueda.

Funciona de la siguiente manera: escribo el texto a buscar en el archivo "buscaempleado.php", este busca el archivo "ordenaempleado.php", el cual realiza la búsqueda y lo ordena por apellido. en "ordenaempleado.php" tengo un combo que me permite ordenar por cédula, nombre o apellido, al seleccionar uno de ellos y dar clic en ordenar llama el archivo "ordenaempleado1.php", que realiza el mismo trabajo que "ordenaempleado.php" pero esta vez lo ordena dependiendo del criterio del combo.

Para evitar errores "ordenaempleado.php" llama a "ordenaempleado1.php" y visceversa.

Sin más preámbulo acá el código de los tres archivos.

buscaempleado.php

<?php
//cadena de conexion//CONEXION MYSQL Y BASE DE DATOS
$con=mysql_connect("localhost","root","123"); //conexion a MYSQL HOST/USUARIO/PASS
$bd=mysql_select_db("cilgasproteccion");  //CONEXION a la base de datos exacta

// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
$busqueda=$_POST["busqueda"]; #trae el dato del archivo FormbuscaEmpleado

//busca los datos y los ordena por apellido
$sql="SELECT * FROM empleado WHERE cedula LIKE '%".$busqueda."%' OR  nombre LIKE '%".$busqueda."%' OR apellido1 LIKE '%".$busqueda."%' OR apellido2 LIKE '%".$busqueda."%' order by apellido1";

$res=mysql_query($sql,$con); //almacena la consulta en una variable que luego se usa para verificar el resultado

?>
<html>
<head>
<title>Lista de Empleados</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 36px;
font-weight: bold;
color: #669900;
}
.Estilo2 {font-size: 36px; font-weight: bold; color: #0000CC; }
.Estilo3 {
font-size: 18px;
font-weight: bold;
color: #0000CC;
}
.Estilo5 {font-size: 18px; font-weight: bold; color: #669900; }
.Estilo6 {font-size: 24px}
-->
</style>
<style type="text/css">
.encabezado{ background-color:#666666; color:#FFFFFF; font-weight:bold}
.registros{ background-color:#f0f0f0}
</style>
<script language="javascript" type="text/javascript">
function eliminar(cedula)
{
if (confirm("Realmente desea eliminar el registro?"))
{
window.location="eliminarempleado.php?cedula="+cedula;
}
}
</script>
</head>
<body>
<table width="715" border="0" cellpadding="0" cellspacing="0" align="center">
  <!--DWLayoutTable-->
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          <!--DWLayoutTable-->
          <tr>
            <td width="217" height="124" valign="top" align="center"><img src="imagenes/logo.jpg" width="178" height="106"></td>
          </tr>
        </table>        </td>
        <td width="498" valign="top" ><p align="center" class="Estilo2">Control </p>
          <p align="center" class="Estilo1">Material de Proteccion </p></td>
      </tr>
  <tr align="center">
        <td width="498" valign="top" align="right" colspan="2">
<p align="right" class="Estilo2">Resultados de la Búsqueda</p>
        </td>
<td height="50">
</td>
    </tr>
<tr>
<table align="center"> <!-- Esta tabla pretende mostar un combo que permita ordenar el resultado -->
<tr>
<td width="100" valign="middle"><h3>Ordenar por</h3></td>
<td align="left">
<form name="orden" method="get" action="ordenaempleado.php">
<select name="ordena">
<option value="cedula" onClick="ordenaempleado.php">Cedula</option>
<option value="nombre" onClick="ordenaempleado.php">Nombre</option>
<option value="apellido1" onClick="ordenaempleado.php">Apellido</option>
</select>
<input type="submit" name="ordenar" value="Ordenar">
<input type="hidden" name="bus" value="<?php echo $busqueda ?>">
</form>
</tr>
</table>
</tr>
</table>

<table align="center" border="1">
<?php
if (mysql_num_rows($res)==0) //si mysql_num_rows es igual a cero es porque no hubo resultado de la consulta
{
?>
<tr>
<td colspan="3"> <!-- Muestra el mensaje dinámico al no encontrar resultados -->
   <div align="center">No se encontraron datos referentes a <b> <?php echo $busqueda; ?> </b> </div>
</td>
</tr>
<?php
}else{ //hace referencia a cuando mysql_num_rows es diferente de cero, es decir, si se encontró algún resultado
?> <!-- Muestra las cabeceras de la tabla de resultados -->
<tr>
<td width="80" align="center"> <b> Cédula </b> </td>
<td width="150" align="center"> <b> Nombres </b> </td>
<td width="150" align="center"> <b> Apellidos </b> </td>
</tr>
<?php
while ($reg=mysql_fetch_array($res))
{
?>
<tr> <!-- Muestra dinámicamente los resultados -->
<td width="100"> <?php echo $reg["cedula"] ?> </td>
<td width="200"> <?php echo $reg["nombre"] ?> </td>
<td width="200"> <?php echo "".$reg["apellido1"]." ".$reg["apellido2"]."" ?> </td>
</tr>
<?php
} //cierre while de mysql_fetch_array
} //cierre else que verifica si existe algún dato
?>
</table>

<style type="text/css">
<!--
.Estilo2 {
font-size: 24px;
color: #66CC00;
font-weight: bold;
}
.Estilo3 {color: #000099}
.Estilo4 {
color: #003ACE;
font-weight: bold;
}
.Estilo5 {
color: #663ACE;
font-weight: bold;
}
.Estilo6 {font-size: 10px}
-->
</style>

<center>
<a href="index.html" title="Regresar"><img src="ima/regresar.png" width="88" height="31" border="0"></a>
<a href="FormbuscaEmpleado.php" title="Buscar de Nuevo"><img src="ima/LUPAS.png" height="40" width="35" border="0"></a>
</center>
</body>
</html>


ordenaempleado.php

<?php
//cadena de conexion//CONEXION MYSQL Y BASE DE DATOS
$con=mysql_connect("localhost","root","123"); //conexion a MYSQL HOST/USUARIO/PASS
$bd=mysql_select_db("cilgasproteccion");  //CONEXION a la base de datos exacta

//busca los datos y los ordena por el criterio del combo
$sql="SELECT * FROM empleado WHERE cedula LIKE '%".$_GET["bus"]."%' OR  nombre LIKE '%".$_GET["bus"]."%' OR apellido1 LIKE '%".$_GET["bus"]."%' OR apellido2 LIKE '%".$_GET["bus"]."%' order by ".$_GET["ordena"]."";

$res=mysql_query($sql,$con); //almacena la consulta en una variable que luego se usa para verificar el resultado

?>
<html>
<head>
<title>Lista de Empleados</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 36px;
font-weight: bold;
color: #669900;
}
.Estilo2 {font-size: 36px; font-weight: bold; color: #0000CC; }
.Estilo3 {
font-size: 18px;
font-weight: bold;
color: #0000CC;
}
.Estilo5 {font-size: 18px; font-weight: bold; color: #669900; }
.Estilo6 {font-size: 24px}
-->
</style>

<style type="text/css">
.encabezado{ background-color:#666666; color:#FFFFFF; font-weight:bold}
.registros{ background-color:#f0f0f0}
</style>
<script language="javascript" type="text/javascript">
function eliminar(cedula)
{
if (confirm("Realmente desea eliminar el registro?"))
{
window.location="eliminarempleado.php?cedula="+cedula;
}
}
</script>

</head>

<body>
<table width="715" border="0" cellpadding="0" cellspacing="0" align="center">
  <!--DWLayoutTable-->
  <tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <tr>
        <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
          <!--DWLayoutTable-->
          <tr>
            <td width="217" height="124" valign="top" align="center"><img src="imagenes/logo.jpg" width="178" height="106"></td>
          </tr>
        </table>        </td>
        <td width="498" valign="top" ><p align="center" class="Estilo2">Control </p>
          <p align="center" class="Estilo1">Material de Proteccion </p></td>
      </tr>
  <tr align="center">
        <td width="498" valign="top" align="right" colspan="2">
<p align="right" class="Estilo2">Resultados de la Búsqueda</p>
        </td>
<td height="50">
</td>
    </tr>
<tr>
<table align="center"> <!-- Esta tabla pretende mostar un combo que permita ordenar el resultado -->
<tr>
<td width="100" valign="middle"><h3>Ordenar por</h3></td>
<td align="left">
<form name="orden" method="get" action="ordenaempleado1.php">
<select name="ordena">
<option value="cedula" onClick="ordenaempleado.php">Cedula</option>
<option value="nombre" onClick="ordenaempleado.php">Nombre</option>
<option value="apellido1" onClick="ordenaempleado.php">Apellido</option>
</select>
<input type="submit" name="ordenar" value="Ordenar">
<input type="hidden" name="bus1" value="<?php echo $bus ?>">
</form>
</tr>
</table>
</tr>
</table>

<table align="center" border="1">
<?php
if (mysql_num_rows($res)==0) //si mysql_num_rows es igual a cero es porque no hubo resultado de la consulta
{
?>
<tr>
<td colspan="3"> <!-- Muestra el mensaje dinámico al no encontrar resultados -->
   <div align="center">No se encontraron datos referentes a <b> <?php echo $busqueda; ?> </b> </div>
</td>
</tr>
<?php
}else{ //hace referencia a cuando mysql_num_rows es diferente de cero, es decir, si se encontró algún resultado
?> <!-- Muestra las cabeceras de la tabla de resultados -->
<tr>
<td width="80" align="center"> <b> Cédula </b> </td>
<td width="150" align="center"> <b> Nombres </b> </td>
<td width="150" align="center"> <b> Apellidos </b> </td>
</tr>
<?php
while ($reg=mysql_fetch_array($res))
{
?>
<tr> <!-- Muestra dinámicamente los resultados -->
<td width="100"> <?php echo $reg["cedula"] ?> </td>
<td width="200"> <?php echo $reg["nombre"] ?> </td>
<td width="200"> <?php echo "".$reg["apellido1"]." ".$reg["apellido2"]."" ?> </td>
</tr>
<?php
} //cierre while de mysql_fetch_array
} //cierre else que verifica si existe algún dato
?>
</table>

<style type="text/css">
<!--
.Estilo2 {
font-size: 24px;
color: #66CC00;
font-weight: bold;
}
.Estilo3 {color: #000099}
.Estilo4 {
color: #003ACE;
font-weight: bold;
}
.Estilo5 {
color: #663ACE;
font-weight: bold;
}
.Estilo6 {font-size: 10px}
-->
</style>
<center>
<a href="index.html" title="Regresar"><img src="ima/regresar.png" width="88" height="31" border="0"></a>
<a href="FormbuscaEmpleado.php" title="Buscar de Nuevo"><img src="ima/LUPAS.png" height="40" width="35" border="0"></a>
</center>
</body>
</html>


ordenaempleado1.php

<?php
//cadena de conexion//CONEXION MYSQL Y BASE DE DATOS
$con=mysql_connect("localhost","root","123"); //conexion a MYSQL HOST/USUARIO/PASS

$bd=mysql_select_db("cilgasproteccion");  //CONEXION a la base de datos exacta

$bus=$_GET["bus1"]; //obtiene la variable del archivo ordenaempleado.php con el dato de busqueda traido de buscaempleado.php

//busca los datos y los ordena el criterio del combo llamado ordena
$sql="SELECT * FROM empleado WHERE cedula LIKE '%".$_GET["bus1"]."%' OR  nombre LIKE '%".$_GET["bus1"]."%' OR apellido1 LIKE '%".$_GET["bus1"]."%' OR apellido2 LIKE '%".$_GET["bus1"]."%' order by ".$_GET["ordena"]."";

$res=mysql_query($sql,$con); //almacena la consulta en una variable que luego se usa para verificar el resultado
?>
<!--
Este archivo permite ordenar el resultado luego de elegir una opción en el archivo ordenaempleado.php
-->
<html>
<head>
<title>Lista de Empleados</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 36px;
font-weight: bold;
color: #669900;
}
.Estilo2 {font-size: 36px; font-weight: bold; color: #0000CC; }
.Estilo3 {
font-size: 18px;
font-weight: bold;
color: #0000CC;
}
.Estilo5 {font-size: 18px; font-weight: bold; color: #669900; }
.Estilo6 {font-size: 24px}
-->
</style>
<style type="text/css">
.encabezado{ background-color:#666666; color:#FFFFFF; font-weight:bold}
.registros{ background-color:#f0f0f0}
</style>
<script language="javascript" type="text/javascript">
function eliminar(cedula)
{
if (confirm("Realmente desea eliminar el registro?"))
{
  window.location="eliminarempleado.php?cedula="+cedula;
}
}
</script>
</head>
<body>
<table width="715" border="0" cellpadding="0" cellspacing="0" align="center">
<!--DWLayoutTable-->
<tr>
    <td width="715" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
     <!--DWLayoutTable-->
     <tr>
       <td width="217" height="124" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
         <!--DWLayoutTable-->
         <tr>
           <td width="217" height="124" valign="top" align="center"><img src="imagenes/logo.jpg" width="178" height="106"></td>
         </tr>
       </table>        </td>
       <td width="498" valign="top" ><p align="center" class="Estilo2">Control </p>
         <p align="center" class="Estilo1">Material de Proteccion </p></td>
     </tr>
  <tr align="center">
       <td width="498" valign="top" align="right" colspan="2">
  <p align="right" class="Estilo2">Resultados de la Búsqueda</p>
       </td>
<td height="50">
</td>
    </tr>
<tr>
<table align="center"> <!-- Esta tabla pretende mostar un combo que permita ordenar el resultado -->
<tr>
<td width="100" valign="middle"><h3>Ordenar por</h3></td>
<td align="left">
  <form name="orden" method="get" action="ordenaempleado.php">
   <select name="ordena" title="Seleccione el criterio por el que desea ordenar">
    <option value="cedula" onClick="ordenaempleado.php">Cedula</option>
    <option value="nombre" onClick="ordenaempleado.php">Nombre</option>
    <option value="apellido1" onClick="ordenaempleado.php">Apellido</option>
   </select>
   <input type="submit" name="ordenar" value="Ordenar" title="Clic para ordenar">
   <input type="hidden" name="bus" value="<?php echo $bus1 ?>"> <!-- envia la variable bus nuevamente a ordenaempleado.php -->
  </form>
  </tr>
</table>
</tr>
</table>
<table align="center" border="1">
<?php
if (mysql_num_rows($res)==0) //si mysql_num_rows es igual a cero es porque no hubo resultado de la consulta
{
?>
<tr>
<td colspan="3"> <!-- Muestra el mensaje dinámico al no encontrar resultados -->
    <div align="center">No se encontraron datos referentes a <b> <?php echo $busqueda; ?> </b> </div>
</td>
</tr>
<?php
}else{ //hace referencia a cuando mysql_num_rows es diferente de cero, es decir, si se encontró algún resultado
?> <!-- Muestra las cabeceras de la tabla de resultados -->
<tr>
<td width="80" align="center"> <b> Cédula </b> </td>
<td width="150" align="center"> <b> Nombres </b> </td>
<td width="150" align="center"> <b> Apellidos </b> </td>
</tr>
<?php
while ($reg=mysql_fetch_array($res))
{
?>
<tr> <!-- Muestra dinámicamente los resultados -->
<td width="100"> <?php echo $reg["cedula"] ?> </td>
<td width="200"> <?php echo $reg["nombre"] ?> </td>
<td width="200"> <?php echo "".$reg["apellido1"]." ".$reg["apellido2"]."" ?> </td>
</tr>
<?php
} //cierre while de mysql_fetch_array
} //cierre else que verifica si existe algún dato
?>
</table>
<style type="text/css">
<!--
.Estilo2 {
font-size: 24px;
color: #66CC00;
font-weight: bold;
}
.Estilo3 {color: #000099}
.Estilo4 {
color: #003ACE;
font-weight: bold;
}
.Estilo5 {
color: #663ACE;
font-weight: bold;
}
.Estilo6 {font-size: 10px}
-->
</style>
<center>
<a href="index.html" title="Regresar"><img src="ima/regresar.png" width="88" height="31" border="0"></a>
<a href="FormbuscaEmpleado.php" title="Buscar de Nuevo"><img src="ima/LUPAS.png" height="40" width="35" border="0"></a>
</center>
</body>
</html>


Modificar dos tablas en MYSQL con PHP

He estado realizando un proyecto en php con mysql y he aprendido algunas cosas que quiero compartir, de hoy en adelante iré poniendo código con respecto a diferentes temas, quien quiera una explicación más detallada solo debe escribirme (jonathan.pantagora@gmail.com) exponiendo que parte del código no entiende.

En este primer código voy a mostrar como modificar datos en dos tablas. por ejemplo: supongamos que tenemos una tabla "empleado" con los datos de los mismos y una tabla "entregasdiarias" donde se registra el material que se el entrega a cada uno.

Ahora supongamos que necesitamos cambiar el número telefónico, el nombre, el cargo o cualquier otro dato. Pues bien vamos a ver como realizar cambios en la tabla empleados y que esos cambios se reflejen en la tabla "entregasdiarias". Cabe destacar que las tablas poseen un campo en común llamado "cedula".

Este es el código:


<?php
require_once("conexion.php"); //llama el archivo de conexión a la base de datos

//modifica la tabla empleados
$sql="UPDATE empleado
SET
nombre='".$_POST["nombre"]."',
apellido1='".$_POST["apellido1"]."',
apellido2='".$_POST["apellido2"]."',
fechaingreso='".$_POST["fechaingreso"]."'
WHERE
cedula=".$_POST["cedula"]."";

$res=mysql_query($sql,$con);

#Modifica el nombre en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
nombre = (
  SELECT nombre FROM empleado
  WHERE empleado.cedula=entregasdiarias.cedula
)
WHERE
cedula=".$_POST["cedula"]."
";

$res=mysql_query($sql,$con);

#Modifica el apellido 1 en la tabla entregas diarias con los datos de la tabla empleado

$sql="
UPDATE entregasdiarias
SET
apellido1 = (
  SELECT apellido1 FROM empleado
  WHERE empleado.cedula=entregasdiarias.cedula
)
WHERE
cedula=".$_POST["cedula"]."
";

$res=mysql_query($sql,$con);

#Modifica el apellido 2 en la tabla  entregas diarias con los datos de la tabla emplead

$sql="
UPDATE entregasdiarias
SET
apellido2 = (
  SELECT apellido2 FROM empleado
  WHERE empleado.cedula=entregasdiarias.cedula
)
WHERE
cedula=".$_POST["cedula"]."
";

$res=mysql_query($sql,$con);

echo "<script type=''>
alert('Los datos del empleado fueron modificados correctamente');
window.location='empleados.php';
</script>";
?>


sábado, 2 de octubre de 2010

Ubuntu 10.10 RC disponible

Ultimamente no he tenido mucho tiempo para dedicarle al blog y las razones son variadas. En esta ocasión quisiera recordar que desde el 30 de septiembre se encuentra disponible la versión Relase Candidate de Ubuntu 10.10.

Esta versión una semana antes de la versión final, recordemos que la versión definitiva estará disponible el 10 de octubre, por ello el sobrenombre del "10 perfecto" (10.10.10 - 10 de octubre del 2010). Recordemos que los pantallazos de instalación han sido renovados para ser más amena la instalación.

Solo queda invitar a quien quiera descargar esta versión que pocos o ningún cambio tendrá con respecto a la versión final la versión final.