Archive for the ‘ programación ’ Category

función extract de #PHP

Recientemente he estado usando esta función de PHP que básicamente lo que hace es convertir los indices de un arreglo en variables cuyo valor de cada variable es el valor de los campos del arreglo.

Una forma en que la uso es para pasar los campos de una consulta a variables, algo así como:

$query = "SELECT campo1, campo2, campo3 FROM tabla";
$rs = mysql_query($query);
$datos = mysql_fetch_assoc($rs);
extract($datos);
echo "$campo1, $campo2, $campo3";

Ahorra mucho tiempo como por ejemplo si agregas campos a la consulta, no tienes que hacer la declaración de la variable ni la asignación del valor. Gran ventaja ¿no creen?

Por desgracia para mi tiene 2 grandes desventajas:

  1. Eclipse no me autocompleta esas variables pues nunca fueron declaradas explicitamente, me obliga a escribirlas en cada momento que debo usarlas por lo general 2 o 3 veces.
  2. Me ha sido un poco difícil modificar el código ya que no puedo rastrear la variable sobre todo en rutinas en donde sufre alguna modificación.

En general extract es buena función pero para casos diferentes al mio xD.

Si hay dudas sobre la función lean aquí

Saludos

#Eclipse PDT no autocompleta PHPCode

En Eclipse llevo pocos días usando el plugin de subversive, esta muy versátil manejar desde el IDE el versionamiento, la verdad que si lo recomiendo ampliamente.
Por otro lado y por alguna extraña razón el código PHP no se autocompleta cuando los proyectos son importados con esta herramienta, cuando oprimo Ctrl+Espacio me sale la leyenda:

No completions available

Y comprobé que era solo en los proyectos de SVN ya que los que tengo de modo local y me completa las funciones, para resolver tal problema lo que hice fue abrir el archivo .project que esta en la raíz del proyecto y añadir la siguiente línea:

<nature>org.eclipse.php.core.PHPNature</nature>

Dentro de las etiquetas <natures></natures> después reinicie Eclipse y listo ya tenía la autocompletación activada nuevamente.

Agregar un consecutivo en consulta mysql

Hay ocasiones en las que queremos agregar un número consecutivo a nuestras consultas de SQL y no me refiero al ID de alguna tabla mas bien a un número volátil que sirva para un control mientras se trabaja con el resultado de esa consulta.

Me he encontrado que con MySQL podemos generar ese número usando variables de sesión, la forma de usar es muy sencillo, aquí un ejemplo:

SELECT  @numeroConsecutivo:=@numeroConsecutivo+1  Consecutivo ,  
tbl.campo 
FROM  miTabla tbl, 
(SELECT @numeroConsecutivo:=0) r

y así tendremos nuestros enumerados.

Ciclo de Vida un Proyecto de Software

Ahora que ando con esto del modelo de desarrollo, recordé aquel viejo chiste gráfico el cuál muestra la realidad de las cosas al desarrollar software.

Haré lo posible para que esto no me suceda =P

Creando un Stored Procedure en MySQL

Bueno anteriormente explique aquí brevemente sobre algunas ventajas sobre los Stored Procedures de MySQL, ahora veremos como generarlos, la sintaxis es sencilla:

DELIMITER $$
 
DROP PROCEDURE IF EXISTS `municipio`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `municipio`(
  IN	opcion	int,                         /** argumento 1 **/
  IN	municipio_id	int                  /** argumento 2 **/
)
BEGIN
 
/** opcion 1: muestra toda la info de un solo municipio **/
IF opcion = 1 THEN 
         /*el  asterisco ( * ) es como medida ilustrativa, en ambiente de producción se deben seleccionar los campos*/
	SELECT * FROM municipio WHERE cve_mun = municipio_id; 
END IF;
 
/** opcion 2: muestra todos los municipios por nombre y ID **/
IF opcion = 2 then
	SELECT cve_mun AS value, municipio AS label FROM municipio;
END IF;
 
END$$
 
DELIMITER ;

Explicación: este procedimiento podrá hacer una de 2 cosas consultas que escribí, todo depende de los argumentos dados al momento de la llamada.
Si queremos que nos devuelva todos los registros de la tabla municipio debemos hacer lo siguiente:

CALL municipio(2,NULL)

Con esto se le esta diciendo que la variable opcion = 2 y la variable municipio_id = null y al momento de evaluar la condición entrará por la que nosotros habíamos predispuesto.

Si queremos que nos muestra toda la info de un municipio se hace de la siguiente forma:

CALL municipio(1,10)

Y así de fácil se generan.

Obtener IP

Como no tengo nada que hacer les pondre un pequeóo script que hice para obtener la ip de las interfaces de red que estón habilitadas, este script esta en BASH y lo hice por que la salida de ifconfig es mucha y casi nunca me sirve.
y dice asó:

[code='Bash']

#!/bin/bash
interfaz=(`/sbin/ifconfig | grep Link | cut -d ":" -f 2 | cut -d " " -f 1`)
ip=(`/sbin/ifconfig | grep Mask | cut -d ":" -f 2 | cut -d " " -f 1`)

con=0
num=${#ip[@]}

for i in `seq 1 $num`; do
echo ${interfaz[$con]} ${ip[$con]}
con=$con+1
done
[/code]

yo lo movi al directorio /usr/bin/ con el nombre ipconfig óó (para variar)

aqui les va un ejemplo:

[terminal]
...::[ 12:12:54 ][ 7th_sign@dementor][~]::...
*> ipconfig
Ethernet 192.168.123.124
Local 127.0.0.1
...::[ 12:12:59 ][ 7th_sign@dementor][~]::...
*>
[/terminal]

bueno eso todo :)

Imágenes aleatorias

Esto ya la habia publicado pero con las fallas de los servidores de la escuela pues se perdieron algunos unos post que habia hecho, pero ya los repondre algún día.
Este script muestra una imagen de manera aleatoria, lo que hago con la imágen que aparece al lado del banner malo que tengo :p
Requisitos:
-BASH
-PHP

[code="PHP"]
/*Script para mostrar una imágen aleatoriamente.
*Se necesitan 2 comando de alguna shell, el mio funciona con bash
*pero deberia funcionar con cualquier shell
*/
$sacar = `ls random | wc -l`;
$sacar= (int)$sacar;
$n=mt_rand(0,--$sacar);
exec ("ls random",$array);
echo "";
echo "Imagen Aleatoria
";
?>
[/code]

Eso es todo lo que hago, no es nada del otro mundo y sé que se puede hacer usando solo PHP, pero cuando lo hice no sabía nada de PHP y ahora que se poquito más, meda flojera editarlo de nuevo :P