Archive

Archive for the ‘MySQL’ Category

VPS Baratos (a precio asumible)

November 22nd, 2011 No comments

Desde hace poco conozco a Evidalia Host, son una empresa seria y que tiene un muy buen soporte al cliente.

He visto que ofrecen lo siguiente:

Características Servidores VPS VPS BÁSICO 1 VPS BÁSICO 2 VPS 30 VPS 100
Precio Mensual 12€  10.80 €
-10% en
planes
nuevos
16€  13.60 €
-15% en
planes
nuevos
23€  18.40 €
-20% en
planes
nuevos
45€  33.75 €
-25% en
planes
nuevos
Memoria RAM Garantizada 512 MB 768 GB 1 GB 2 GB
Memoria RAM Compartida (Bursted) 1GB 1.5 GB 2 GB 3 GB
Dominios Alojados (ampliables) 10 10 30 100
Espacio en Disco 5 GB 15 GB 30 GB 50 GB
Transferencia Mensual 200 GB 500 GB 800 GB 1000 GB
Direcciones IP (ampliables) 1 1 2 2
Servidores DNS Propios
Panel Virtuozzo
Reinicio Remoto Panel de Control
Backup Automático
Restauración Imagen Servidor
Tarea Programadas Cron
Sistema Operativo Linux Centos Centos Centos Centos
Panel de Control en Español Plesk Plesk Plesk Plesk
Acceso SSH (root)
Firewall
PHP 5 y MySQL 5
Servidor Apache
Servidor FTP
Reinstalación
Correo SMTP, POP3/IMAP, Webmail
Cuentas Correo Ilimitadas Ilimitadas Ilimitadas Ilimitadas
Capacidad por Cuenta Ilimitado Ilimitado Ilimitado Ilimitado
Categories: Apache, Internet, MySQL, PHP Tags: , , , , ,

TCPDF + MySQL

July 14th, 2011 No comments

Como hay mucha gente que no sabe como enlazar TCPDF con MySQL, y ya vimos anteriormente como hacer un documento básico, ahora voy a dejar aquí un ejemplo de como se podría enlazar.

El ejemplo esta basado en el exemple_011.php (original) de la colección de ejemplos de TCPDF.

El resultado del ejemplo sería un documento como este: Ejemplo TCPDF + MySQL

mysql_connect("localhost","root","");
mysql_select_db("information_schema");

require_once('../config/lang/eng.php');
require_once('../tcpdf.php');

// extend TCPF with custom functions
class MYPDF extends TCPDF {

	// Colored table
	public function ColoredTable($header,$data) {
		// Colors, line width and bold font
		$this->SetFillColor(255, 0, 0);
		$this->SetTextColor(255);
		$this->SetDrawColor(128, 0, 0);
		$this->SetLineWidth(0.3);
		$this->SetFont('', 'B');
		// Header
		$w = array(50, 80, 50);
		$num_headers = count($header);
		for($i = 0; $i < $num_headers; ++$i) { 			$this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1);
		}
		$this->Ln();
		// Color and font restoration
		$this->SetFillColor(224, 235, 255);
		$this->SetTextColor(0);
		$this->SetFont('');
		// Data
		$fill = 0;
		foreach($data as $row) {
			$this->Cell($w[0], 6, $row[0], 'LR', 0, 'L', $fill);
			$this->Cell($w[1], 6, $row[1], 'LR', 0, 'L', $fill);
			$this->Cell($w[2], 6, $row[2], 'LR', 0, 'L', $fill);
			$this->Ln();
			$fill=!$fill;
		}
		$this->Cell(array_sum($w), 0, '', 'T');
	}
}

// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Jordi Girones');
$pdf->SetTitle('TCPDF Tutorial - TCPDF + MySQL');
$pdf->SetSubject('TCPDF Tutorial - TCPDF + MySQL');
$pdf->SetKeywords('TCPDF, PDF, example, test, mysql');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 011', PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set font
$pdf->SetFont('helvetica', '', 12);

// add a page
$pdf->AddPage();

//Column titles
$header = array('Schema', 'Name', 'Engine');

//Data loading
$sql = "SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM tables WHERE TABLE_SCHEMA IN ('information_schema','mysql','phpmyadmin') ORDER BY TABLE_SCHEMA ASC";
$rs = mysql_query($sql);
if (mysql_num_rows($rs)>0){
	while($rw = mysql_fetch_array($rs)){
		$data[] = $rw;
	}
}

// print colored table
$pdf->ColoredTable($header, $data);

// ---------------------------------------------------------

//Close and output PDF document
$pdf->Output('example_011.pdf', 'I');

//============================================================+
// END OF FILE
//============================================================+
Categories: MySQL, PHP Tags: , ,

Concatenar campos en MySQL

June 16th, 2011 No comments

Cansado de concatenar columnas en MySQL y perderme entre tanta comilla para poner separadores, el otro día encontre la función GROUP_CONCAT y vi que una función muy útil también y que en muchos casos soluciona gran papeleta es la función CONCAT_WS()

A diferencia de CONCAT, en esta función el primer parámetro es el separador que queremos utilizar y el resto son las columnas que queremos concatenar.

Esto a muchos les va a ahorrar un gran dolor de cabeza (entre ellos a mi).

Su uso es simple y fácil.

Categories: MySQL Tags: , , ,

Agrupar filas en una columna con MySQL

June 15th, 2011 No comments

Hace poco he descubierto la existencia de una función en MySQL cuya función es la de dada una serie de resultados, agrupar las filas en función de lo que nos interese, concatenandolas para mostrarlas en una sola columna.

Esto se consigue gracias a la función GROUP_CONCAT() y su uso es verdaderamente simple. Veámos un ejemplo:

SELECT alumno_name, GROUP_CONCAT(nota)

FROM alumnos_notas

GROUP BY alumno_name

De esta forma, el resultado será una única fila que agrupa con ‘,’ todas las posibles notas.

A mi me ha sido util, por eso la comparto con todos.

Monitorizar MySQL con myTop

June 2nd, 2011 No comments

Desde hace poco, he descubierto la existencia de una herramienta similar al clásico comando `top`, pero que en lugar de atacar al sistema, ataca a nuestro servidor MySQL.

Se trata de myTop y en ocsaiones puede llegar a ser realmente útil, además se puede configurar un fichero para tenerlo en el servidor y ejecutar directamente el comando para no tener que indicar a que servidor y de que modo nos queremos conectar cada vez.

Si disponemos de un sistema diferente a CentOS 5, bastará con cambiar la URL del paquete RPM por la correspondiente. Podeis consultar las disponibles aquí

Para instalarlo en nuestro sistema Centos 5, bastará con hacer lo siguiente:

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

yum install mytop

6v2dxwKOo7Vg
Categories: Linux, MySQL Tags: , , , , ,

Valor máximo/mínimo de fila en MySQL

February 9th, 2011 6 comments

Este post nace de la necesidad de extender un poco más nuestra experiencia en MySQL.

¿Cuántas veces has querido sacar un listado de fechas y quedarte con la menor? ¿Y con la mayor?

La respuesta a esta necesidad son las funciones operadores de MySQL. Se trata de greatest() y least().

Ambas funciones se utilizan del mismo modo y tienen los mismo parámetros, pero tienen sentidos totalmente opuestos. gratest() devuelve el valor más grande, mientras que least() devuelve el más pequeño.

Básicamente para que se entienda es como un max() o min(), pero en lugar de ser a nivel de columna, es solo a nivel de fila.

Ejemplo least():

mysql> SELECT LEAST(2,0);
-> 0
mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
-> 3.0
mysql> SELECT LEAST('B','A','C');
-> ‘A’

Ejemplo greatest()

mysql> SELECT GREATEST(2,0);
-> 2
mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
-> 767.0
mysql> SELECT GREATEST('B','A','C');
-> ‘C’

En lugar de valores también podemos optar por introducir los nombres de columna y nos devolverá los mismo resultados.

Espero que a vosotros os sirva igual que me ha servidor a mi.

¿Cómo importar un fichero SQL a MySQL?

January 31st, 2011 No comments

Vamos a ver como se puede importar un fichero de dump directamente a una base de datos desde la misma linea de comandos.

Esto surge como necesidad cuando tratamos de importar (como hacen la mayoría) un dump de una base de datos con phpMyAdmin y se fracasa en el intento. La mayoría de veces es debido a que el fichero es demasiado grande para que (debido a la configuración del servidor) phpMyAdmin pueda importarlo de forma correcta.

Veamos el comando que debemos utilizar y posteriormente explicaremos cada opción:

$ mysql -uadmin -ppassword -hlocalhost database < fichero_dump.sql

Describimos un poco las opciones, aunque viendo el comando se hace bastante fácil identificar que es cada cosa:

  • -u es para especificar el usuario (el cual deberá tener permisos en la base de datos en la que tenemos que importar)
  • -p es el password del usuario para acceder al servidor
  • -h es el host donde queremos conectarnos, si no se especifica se considera que queremos conectar a localhost

Posteriormente a los comando, especificamos el nombre de la base de datos en la que queremos importar junto con el operador < que indicará la dirección en la que los datos viajaran (ya trataremos otro día como exportar desde linea de comando) y por último el nombre de fichero del dump queremos importar.

Con esto ya podemos importar en cualquier base de datos rápidamente nuestros datos.

Actualizar PHP, MySQL en dedicado con Plesk

August 2nd, 2010 3 comments

En este nuevo post, vamos a tratar de actualizar nuestra versión de MySQL y PHP en un servidor dedicado administrador mediante el panel de control Plesk.

Muchos dicen que es peligroso hacer este tipo de actualizaciones, yo lo hice en mi propio servidor porqué no tenia nada que si lo perdiese era excesivamente grave (además, se solucionaria dejando las versiones anteriores).

Para actualizar PHP y MySQL en nuestro servidor con Plesk, es bien sencillo, solo tenemos que realizar dos pasos.

wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh

Con esto lo que hacemos es añadir el repositorio Atomic a nuestro sistema (este repositorio tiene las últimas versiones de PHP y MySQL. Con lo que ya podemos trabajar con YUM con este repositorio. El paso siguiente es actualizar como hemos dicho mediante YUM los paquetes referentes a PHP y MySQL. Para ello, basta con escribir lo siguiente:

yum update php mysql

YUM nos informará de cuantos paquetes se instalan de nuevo y los que se actualizarán. Nos informará de la cantidad de datos que necesita descargar del repositorio y solo necesitará una confirmación para empezar a descargar los nuevos paquetes. Una vez el YUM haya terminado de instalar/actualizar los paquetes de PHP y MySQL, solo tendremos que reiniciar nuestro Apache

/etc/init.d/httpd restart o /etc/init.d/apache restart

Si queremos podemos hacer uso de la funcion phpinfo() para ver que la versión de PHP se ha actualizado correctamente. O bien también podemos verlo por consola, con el siguiente comando:

php -v

De esta forma podemos actualizar los PHP y MySQL anteriores a las versiones estables más actuales. Este procedimiento ha sido probado en un servidor dedicado CentOS + Plesk contratado en OVH Hispano.

Contar palabras de un campo en MySQL

August 31st, 2009 No comments

Bienvenidos, este post lo pongo porqué ha sido una de mis necesidades ultimamente.

He necesitado contar las palabras que tenia un campo de una table en MySQL, para sacar el número de apellidos que la gente introduce al registrarse en una determinada página.

La solución más rápida que he encontrado es la siguiente:

SELECT LENGTH(campo) – LENGTH(REPLACE(campo, ‘ ‘, ”))+1 FROM table

Lo calcula de la forma más fácil, cuenta las letras que tiene el campo y después resta las letras del campo habiendo quitado los espacios. Con lo que el resultado es el número de espacios.

Como entre las palabras los espacios (menos en la última palabra) por eso le sumamos uno.

Es bien sencillo, inluso podríamos crear una función para que pudiesemos usarla desde donde queramos si queremos más comodidad.

Espero que os sea de tanta ayuda como me ha sido a mi.

Categories: MySQL Tags: , , ,

Apache + MySQL + PHP en Debian 5

August 20th, 2009 3 comments

Hola, este post es fruto de la necesidad. Necesitaba un sistema para pruebas basado en Linux y he optado por probar Debian, ya que nunca lo había utilizado.

Nuestra finalidad es la de dejar el sistema disponible para actual de servidor web con php + mysql

Veámos paso a paso como debemos de ir instalando las cosas.

Todos los comandos que se usan, son por consola en modo root.

Paso 1: Instalar servidor Apache en Debian:

# apt-get install apache2

Esto instalará el servidor web, por defecto, la carpeta donde se almacenaran los ficheros es /var/www

Paso 2: Instalar PHP y sus librerias en Debian:

# apt-get install php5 php5-cli php5-gd php5-mcrypt php5-curl php5-imagick php5-mhash php5-sqlite php5-xsl

Nótese que la mayoría de paquetes aparte del php5, son librerias adicionales de PHP. En este ejemplo hemos puesto algunas de las más habituales.

Paso 3: Instalar el módulo de Apache para PHP5 en Debian:

# apt-get install libapache2-mod-php5

Con este módulo, podremos hacer que nuestro Apache sea capaz de interpretar las páginas con código PHP

Paso 4: Instalar servidor MySQL en Debian:

# apt-get install mysql-server

Este paquete es el necesario para poder tener un servidor de base de datos MySQL en nuestro sistema. Una vez descargado el paquete, empezará la instalación y nos pedirá un password para el usuario root de MySQL

Paso 5:Instalar libreria de PHP5 para comunicación con MySQL en Debian:

# apt-get install php5-mysql

Esta libreria no la hemos incluido antes, debido a que quiero remarcar la importancia que tiene. Sin ella, nuestras páginas PHP no podrán comunicarse con la base de datos. Así que es una librería fundamental si queremos trabajar con PHP+MySQL

Una vez hemo todo esto, nuestro sistema está listo, vamos a probarlo.

Deberíamos de poder acceder desde nuestro navegador web a http://localhost/

Si sustituimos el fichero index.html por un index.php cuyo contenido sea:

<?php phpinfo();?>

Deberíamos ver nuestro navegador un resumen con toda la información de PHP en nuestro sistema.

Pasos Adicionales:

Si nuestro impetu va más alla y queremos cambiar parámetros de PHP o la configuracio de Apache, o cualquier cosa de la configuración de MySQL las rutas donde se encuentran los ficheros de configuración son las siguientes:

Apache: /etc/apache2/apache2.conf
PHP: /etc/php5/apache2/php.ini
MySQL: /etc/mysql/my.cnf

Una vez modificados los ficheros de configuración, recuerda que debes de reiniciar los servicios, para que los cambios se vean reflejados.

# /etc/apache2 restart
# /etc/mysql restart

Con esto finalizamos este pequeño tutorial de como instalar Apache+MySQL+PHP en Debian.

Espero que os sea de ayuda.

Categories: Apache, Linux, MySQL, PHP Tags: , , , , ,