Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Archive for July, 2009

Instalacion de FreeBSD 7 en castellano

Les dejo una guia para que instalen freebsd rapido y seguro..
Instalacion de FreeBSD 7 en castellano

Que ondas con la vision del proyecto

Vean que bonita imagen… esto lo dice todo

Instalacion de Postgresql 8.4 sobre FreeBSD 7

Prepare esta guia.. para aquellos interesados en la implementacion de postgresql sobre FreeBSD 7

ma-iv-2-c-2-manual-de-instalacion-postgresql-84-en-freebsd-7x.pdf

Preguntale a un Ninja, que se siente ser ninja

Neutralidad en la RED

Consultas complejas con cakephp

El framework cakephp tiene una definición de los modelos muy potente, lo que el facil acceso a datos de la base de datos, realizando consultas todo lo complejas que se desee.

Consulta sencilla

Las consultas más simples, que afectan a una única columna son fáciles de realizar, se resuelven con un find y la condición pasada como un parámetro en la llamada a este método.

De esta manera:


$this->Modelo->find('all' ,
          array('conditions'=>'Modelo.columna = valor'))

se generará un select con una condición

where Modelo.columna = valor

Consulta con varias condiciones separadas por AND

Surge la duda de ¿qué sucede si deseamos realizar una consulta con varias condiciones?, se podría lograr colocando como segundo parámetro de el array conditions una cadena con todas las condiciones concatenadas con AND entre ellas, pero cakephp ya pensó en eso y hay una manera más sencilla y más limpia de hacerlo, que es pasar un array con todas las condiciones que deseamos que cumpla la consulta, con el formato Modelo.columna => valor :

De esta manera:


$this->Modelo->find('all',
         array( 'conditions'=>
                  array( 'Modelo.columna' => 'valor',
                           'Modelo.columna2' => 'valor2')
         )
 )

Esta llamada generará una consulta con una condición

where Modelo.columna = valor1 AND Modelo.columna2 = valor2


Consulta utilizando <>, <=, >=, > o <

Si en lugar de querer que todas las columnas coincidan con los valores que se les pasan en el array, queremos que alguna columna sea distinta del valor, la condición debería tener este formato.


$this->Modelo->find('all',
         array( 'conditions'=>
                  array(
                           'Modelo.columna <>‘ => ‘valor’,
                           ‘Modelo.columna2′ => ‘valor2 ‘
                  )
         )
 )

Esta llamada generará una consulta con una condición

where Modelo.columna <> valor1 AND Modelo.columna2 = valor2

Este formato también permitiría además de utilizar el distinto de (<>), utlizar mayor que (>) ,mayor o igual que (>=), menor que (<) o menor o igual que (<=).

Consulta utilizando OR

Una nueva duda surge cuando se nos plantea, ¿qué pasa si en lugar de realizar una consulta con condiciones separadas con AND queremos crear una consulta con las condiciones separada por OR ?, pues cakephp también permite hacerlo de manera muy sencilla, creando un find con el siguiente formato:

$this->Modelo->find('all',
             array('conditions'=>
                     array(
                          'OR'=>array(
                              'Modelo.columna' => 'valor',
                             'Modelo.columna2' => 'valor2'
                           )
                     )
             )
)

Esto creará una consulta con una condición

where Modelo.columna = valor OR Modelo.columna2 = valor2

Esta opción se puede utilizar con cualquiera de los operadores booleanos AND, OR, NOT, XOR.

Cakephp también permite otras opciones más complejas:

Consulta utilizando IN

¿Qué sucede si queremos utilizar una consulta en la que queramos que una columna coincida con una serie de valores?. Para esto, lo más sencillo sería utilizar la sentencia sql in.
Instintivamente la primera idea que podemos tener para crear una consulta de este tipo es generar una cadena con todos los valores que deseamos pasarle a la consulta y esto concatenarlo con Modelo.columna IN.
Cakephp ya había pensado en esto y ha hecho que sea mucho más sencillo que todo esto, para realizar una consulta con un IN como condición habrá que pasarle un array con los valores que queramos que se compruebe la coincidencia, de este modo:

$valores = array(1,2,3,4,5,6);
$this->Modelo->find('all',
array('conditions'=>
          array(  'Modelo.columna' => $valores,
                    'Modelo.columna2' => 'valor2' )
        )
)

Esto creará la siguiente consulta:

where Modelo.columna in (1,2,3,4,5,6) AND Modelo.columna2 = valor2


Consulta utilizando NOT IN

Si en lugar de que se compruebe la coincidencia con ciertos valores, se compruebe la no coincidencia (NOT IN), haremos la llamada de esta manera:

$valores = array(1,2,3,4,5,6);
$this->Modelo->find('all',
       array('conditions'=>
            array('NOT'=>
                  array( 'Modelo.columna' => $valores),
                           'Modelo.columna2' => 'valor2')
           )
)

Esto creará la siguiente consulta:

where Modelo.columna NOT IN (1,2,3,4,5,6) AND Modelo.columna2 = valor2

Consulta utilizando BETWEEN

Podría darse la posibilidad de tener que comprobar si el valor de un campo está contenido entre dos valores dados (BETWEEN), para esto igual que para la expresión in se nos ocurriría crear una cadena concatenando los valores y la sentencia sql, pero cakephp permite una forma mucho más sencilla de crearlo:

$this->Modelo->find('all',
 array('conditions'=>
   array(
    array('Modelo.columna BETWEEN ? AND ?' => array(1,8) )
      )
  )
)

Esta llamada al find crearía una consulta sql con la siguiente condición:

where Modelo.columna between 1 AND 8

Con todas estas opciones se podrían crear consultas tan complejas como deseemos sin tener que preocuparnos de generar cadenas con el código sql para concatenar a las condiciones, de una manera muy sencilla e intuitiva.

Dudas sobre Elasctic

Le pedi a mi hermano que me ilustrara sobre el correcto uso de elastic css framework
Ejemplo del uso de elastic aqui

Diferentes puntos de vista, entre los diferentes OS

Navegando hace unos instantes, encontré este “humor gráfico” en el cual podemos apreciar los distintos puntos de vista de los diferentes sistemas operativos, unos contra otros, como por ejemplo; como ve un “maquero” a un “linuxero” y viceversa. Espero que les guste.
linuxmacpcperceptions1.jpg

Ordena Pizza sobre la linea de comandos

Feliz dia del administrador de sistemas

« Entradas anteriores