Versión Alfa de Prestashop 1.7

Versión Alfa de Prestashop 1.7

Prestashop ha anunciado que ha liberado la versión alfa de Prestashop 1.7.

prestashop 1.7

Esta versión, que aún se encuentra en fase alfa y por tanto no es utilizable aún para implantación de eComerce reales incorpora cambios importantes respecto de la versión 1.6.

El principal cambio es la utilización del framework Symfony 2 en algunas partes del desarrollo, por ejemplo la página del producto (en versiones posteriores se irán desarrollando más partes de PrestaShop con este framework).

El nuevo Prestashop también incluirá mejoras importantes para crear un nuevo tema, un nuevo tema de inicio, simplificará el flujo de trabajo para la creación de un producto así como diversas mejoras de interfaz.

Una de las desventajas es que se prevé será difícil actualizar versiones anteriores a la nueva versión ya que probablemente habrá que adaptar o sustituir los temas o módulos que se utilicen, especialmente aquellos módulos que trabajen con la página del producto.

Puede encontrar más  información en http://build.prestashop.com/

 

 

Post La lavadora Prendas especiales

Post La lavadora Prendas especiales.

Inicio aquí esta referencia a los post y contenidos que publico en otros blog  con este post La lavadora Prendas especiales publicado en el blog de Online Electrodomésticos.

Post La lavadora Prendas especiales.

En este post proporciono distintos consejos para lavar edredones, mantas y cortinas en una lavadora doméstica. Este post forma parte de un trabajo para mejorar el posicionamiento y tráfico en Online Electrodomésticos. Para redactar este post he pedido información a la propia dirección de Online Electrodomésticos, he recopilado información de los fabricantes de lavadoras y productos detergentes así como realizado consultas en otros blogs especializados.

Para acceder al contenido de este Post La lavadora Prendas especiales,  puede hacer clic en el siguiente enlace:

La lavadora: Prendas especiales.

Además de redactar el post, se ha promocionado en redes sociales como Facebook, Twitter, Google+ así como en otros blogs, creando enlaces desde otros blogs hacia este contenido.

 

 

Construyendo su comercio electrónico con Prestashop

Construyendo su comercio electrónico con Prestashop ya disponible en Amazon.

Ya está disponible en Amazon para Kindle y dispositivos electrónicos mi nuevo libro “Construyendo su comercio electrónico con Prestashop“.

Construyendo su comercio electrónico con Prestashop

Este libro le proporciona las claves para construir su propio negocio online con Prestashop, así como una profunda descripción de las características y funcionalidades de esta popular aplicación de comercio electrónico.

He escrito este libro en base a mi experiencia tanto implantando y gestionando diversos comercios online como en mi experiencia como formador.

Construyendo su comercio electrónico con Prestashop” sigue la estructura temática que utilizo en mis clases para facilitar al máximo la comprensión lógica de todos los contenidos y está dirigido tanto a todas aquellas personas que desean introducirse en el mundo del comercio electrónico cómo a todas aquellas que, aún teniendo alguna experiencia, quieren conocer de forma estructurada las funcionalidades de Prestashop. Además, como todo ebook se distribuye a un precio muy competitivo.

Puede acceder directamente a la compra del libro en  http://www.amazon.es/gp/product/B01AKAWNJA

pagina-amazon

Configurar Portes en Prestashop

Configurar Portes en Prestashop

El proceso de Configurar Portes en Prestashop  es una de las cosas más importantes que debemos hacer en nuestro Prestashop, dado que es vital para el correcto cálculo de los gastos de envío. El caso más común es que tenemos un gastos de envío dependiendo de diferentes áreas.

El más simple de entender con configurar es a través de un ejemplo, vamos a suponer que tenemos un transportista con unos costes de transporte según la siguiente tabla:

Zona / PesoHasta 2 KgDe 2.1 a 5 Kgde 5.1 a 7 KgMás de 7 Kg
Península3,00 €4,20 €6,20 €8,00 €
Islas Baleares4.00 €5,20 €8,20 €10,00 €
Islas Canarias6,00 €7,20 €12,20 €14.00 €
Ceuta5,00 €6,20 €10,20 €12.00 €
Melilla5,00 €6,20 €12,20 €12.00 €

Veamos como configurar portes en prestashop para este transportista.

portes-prestashop

Tenemos 5 diferentes zonas, así que vamos a crearlas.

Por defecto estas zonas no existen en prestashop, así que vamos a crear utilizando el botón crear . Si las necesitamos podemos eliminar el resto de zonas que vienen preconfigurados para Prestashop.

Seguidamente accederá a la gestión de las provincias, para asignar la zona que corresponde a cada provincia.

La primera cosa que hacer en esta pantalla es conseguir que sólo aparezcan en las provincias del Estado español, razón por la cual en el cuadro en la parte superior de la selección de país “España” del filtro y haga clic en el botón Buscar.

Seleccione haciendo clic en la casilla de verificación a la izquierda de las provincias de la misma área y, al final todos tenemos el botón de lista desplegable donde usted encontrará la opción para asignar una nueva zona. También podríamos modificar una a una cada provincia.

Ahora hemos creado las diferentes zonas y les hemos asignado las provincias correspondiente. Ahora pasaremos a crear un nuevo transportista  Accederemos a la gestión de los transportistas.

Como estamos en la pantalla de portadores que hacemos clic en el botón para crear un nuevo portador y lanzará el Asistente para crear una nueva compañía.

Poner los datos en el nombre y tiempo de envío y hacemos clic en el botón siguiente. En este segundo paso es donde los gastos por área y peso.

El cuadro muestra los precios por área para la primera fila de peso. Con el botón Agregar nueva gama iremos añadiendo el resto de las filas. El resultado final será

Observe que en la última fila hemos conseguido un permitidos hasta 9.999.999 Kg, lo suficientemente grandes como para dejarnos tomar todos los paquetes por encima de 7 Kg.

En el siguiente paso que nos indicará que las dimensiones máximas del paquete deben existir y para que grupos de clientes se admite este portador

Finalmente vamos a mostrar una pantalla de Resumen y haga clic en Finalizar creamos nuestro trasnportista.

Recuerde que en m3 Software somos especialistas en aplicaciones de comercio electrónico, Prestashop y Magento, programación y aplicaciones web, SEO, Community Management,  etc.

Programación Orientada a Objetos en PHP (I)

Programación Orientada a Objetos en PHP (I)

Si bien muchos programadores estamos muy habituados al desarrollo de aplicaciones mediante métodos y funciones cada vez es más habitual el uso de las técnicas de Programación Orientada a Objetos en PHP (OOP).

Programar mediante esta técnica supone un cambio importante a la hora de desarrollar software y por ello algunos programadores se resisten a emplear estas técnicas ya que implica un cierto cambio de mentalidad y de enfoque de nuestros proyectos. Por contra se consiguen códigos mucho más limpios y estructurados así como mucho más fácilmente reutilizables.

Este post no pretende ser una guía exhaustiva de Programación Orientada a Objetos en PHP pero si que trataré de proporcionarle algunas ideas para perder el miedo a estas técnicas y ser capaz de desarrollar código OOP en PHP.

Clases

Aunque no es estrictamente así, ruego que no se enfaden por esta definición los expertos en el tema, las clases serian el equivalente a bibliotecas de métodos, funciones y datos, que podemos reutilizar tanto como quedamos. Podemos decir que las clases son el corazón de la Programación Orientada a Objetos.

Quizá la mejor manera de comprender un concepto tan abstracto es ver un ejemplo para ello en este Post realizaremos un pequeño ejemplo paso a paso para ir comprendiendo los distintos conceptos.

Empezaremos con un ejemplo, no muy útil, pero que espero sea muy ilustrativo.

En este ejemplo crearemos una clase para conectarnos a una base de datos y retornar los datos.

Para poder realizar el ejemplo primeramente crearemos una base de datos llamada test_oop. Crearemos un usuario para acceder a esa base de datos de nombre user_oop y contraseña pwd_oop

En la base de datos test_oop crearemos la tabla usuarios:

--
-- Base de datos: `test_oop`

-- Estructura de tabla para la tabla `usuarios`

CREATE TABLE usuarios (
id_usuario bigint(20) unsigned zerofill NOT NULL,
nombre varchar(30) DEFAULT NULL,
ape1 varchar(30) DEFAULT NULL,
ape2 varchar(30) DEFAULT NULL
);
--
-- Volcado de datos para la tabla `usuarios`
--
INSERT INTO usuarios (id_usuario, nombre, ape1, ape2) VALUES(00000000000000000001, 'pablo', 'ramis', 'remos');
INSERT INTO usuarios (id_usuario, nombre, ape1, ape2) VALUES(00000000000000000002, 'rosa', 'ra', 're');
--
-- Indices de la tabla `usuarios`
--
ALTER TABLE usuarios ADD PRIMARY KEY (id_usuario);
-- AUTO_INCREMENT de la tabla `usuarios`
--
ALTER TABLE usuarios
MODIFY id_usuario bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT;

Ahora crearemos una clase para conectarse a la base de datos, leer datos de la tabla y grabar datos de la tabla, para ello crearemos un fichero de nombre miclase.php con el siguiente contenido:

 define('SERVIDOR',"localhost");
 define('USUARIO',"user_oop");
 define('PASSWORD',"pwd_oop");
 define('BBDD',"test_oop");
class gestion_bd  
{ 
function __construct()
 {
 $conn = mysql_connect(SERVIDOR,USUARIO,PASSWORD) or die('error conectando al servidor'.mysql_error());
 mysql_select_db(BBDD, $conn) or die('error conectando a la base de datos->'.mysql_error());
  }
 public function leer_datos()
 {
 $consultaSql="SELECT id_usuario,nombre,ape1,ape2 FROM usuarios";
   return mysql_query($consultaSql);
 }
function __destruct()
 {
 mysql_close();
 }
}

Analicemos un poco este código.  Obviamente en la parte superior estamos definiendo las constantes de acceso a la base de datos.  Con

Class gestion_bd
{
…….
}

Estamos creando una clase de nombre gestion_bd. Todo lo que se encuentre entre las dos llaves será el código de esta clase.

Observamos que dentro de la clase gestion_bd tenemos tres funciones: una función __construct() al principio, una función __desctruct() al final y una función pública llamada leer_datos().

Las funciones (métodos)  __constuct() y __desctruct() – observe que antes del nombre llevan dos guiones bajos – son un poco especiales ya que no es necesario realizar una llamada a las mismas porque se ejecutan automáticamente al crear o terminar una clase respectivamente. Estas funciones se conocen como CONSTRUCTOR y DESCTRUCTOR. No es obligatorio que una clase tenga un constructor o un desctructor pero en muchas ocasiones nos serán muy útiles.

Si observa atentamente el código, en este ejemplo el constructor contiene el código que nos conecta a la base de datos y el destructor el código que cierra la conexión.

function __construct()
 {
 $conn = mysql_connect(SERVIDOR,USUARIO,PASSWORD) or die('error conectando al servidor'.mysql_error());
 mysql_select_db(BBDD, $conn) or die('error conectando a la base de datos->'.mysql_error());
  }
function __destruct()
 {
 mysql_close();
 }

De esta forma nos podemos olvidar de tener que conectar y desconectar con la base de datos ya que cada vez que utilicemos esta clase ya realizará el proceso automáticamente por nosotros.

La función leer_datos() es un método publico de esta clase si observa el código éste realiza una consulta a la base de datos y retorna el resultado de la misma.

Bien, tenemos nuestra clase creada, veamos como utilizarla. Para ello crearemos un fichero index.php con el siguiente contenido:

 <html>
<?php
 include_once("clases/myclass.php");
 $bbdd=new gestion_bd();
 $datos=$bbdd->leer_datos();
?>

 <body>
 <table id="tbl_usuarios">
 <thead><tr><th>Nombre</th><th>Ape1</th><th>Ape2</th></thead>
 <tbody>
<?php
 while($fila = mysql_fetch_array($datos))
 {
 echo "<tr>";
 echo "<td>";
 echo $datos['nombre'];
 echo "</td>";
 echo "<td>";
 echo $datos['ape1'];
 echo "</td>";
 echo "<td>";
 echo $datos['ape2'];
 echo "</td>";
 echo "</tr>";
 }
?>
 </tbody>
 </table>
 <br/>
</body>

Analicemos el siguiente código, lo importante está en las siguientes lineas:

include_once("clases/miclase.php");
$bbdd=new gestion_bd();
$datos=$bbdd->leer_datos();

La primera linea incluimos el fichero donde tenemos almacenadas nuestras clases.

En la segunda línea creamos una instancia nueva de la clase gestion_bd  con la instrucción new . En este momento se llamará también de forma implícita al constructor de la clase y realizará la conexión a la base de datos. Podemos crear tantas instancias como necesitemos de una clase. En este caso $bbdd contendrá esta instancia. Observe en la siguiente linea que para utilizar la clase siempre lo hacemos a través de la instancia $bbdd->leer_datos();  llama al método leer_datos y retornará los datos de la consulta a la base de datos.

A partir de este punto simplemente mostramos en un bucle el contenido de $datos mediante una tabla html.

En próximos post trataremos aspectos como encapsulado, herencia, atributos, etc.

Copia de Seguridad de PrestaShop

Hacer una Copia de Seguridad de PrestaShop

Uno de los aspectos más importantes y que muchas veces se olvidan en la gestión de cualquier aplicación y, como no, en el caso de las aplicaciones web es la gestión de copias de seguridad. Lamentablemente siempre nos acordamos de la necesidad de este punto cuando hemos tenido algún problema en el que hemos perdido datos y no disponemos de ninguna copia reciente que nos permita recuperar nuestra información.

En este post vamos a dar unas pautas para realizar este proceso que nos ayudarán a planificar nuestro sistema de copias de seguridad y que no sólo serán válidas para realizar copia de seguridad de PrestaShop si no de la mayoría de las aplicaciones tanto web como de escritorio.

Lógicamente esto se trata de una guía puramente orientativa. Cada caso requiere de un análisis más específico.

Una aplicación como PrestaShop dispone de tres tipos de elementos que podemos diferenciar a la hora de realzar copias de seguridad:

  1. Los ficheros propios de la aplicación.
  2. La base de datos.
  3. Ficheros propios de los datos, por ejemplo las imágenes de los productos.

Dónde almacenar una copia de seguridad de PrestaShop

Uno de los errores más frecuentes cuando se realiza una copia de seguridad es almacenar esta en la misma ubicación dónde se encuentra la aplicación. Normalmente se pierde la información bien por un error físico en el disco donde se encuentra almacenada la información, bien por algún virus o ataque a ese sistema. Si este problema elimina o corrompe los datos de la aplicación lo más probable es que también elimine o corrompa los datos de nuestra copia de seguridad y por lo tanto será absolutamente inútil.

Por tanto siempre debemos almacenar las copias de seguridad EN UNA UBICACIÓN DISTINTA de dónde se encuentra la aplicación y/o los datos.

Dependiendo de la criticidad de los datos además almacenaremos esta copia en un sistema u otro. Por ejemplo para sistemas poco sensibles podemos utilizar un sistema semidoméstico para almacenar los datos en un disco duro externo, un pendrive, en nuestro equipo local en caso de ser una aplicación web, etc. Es muy interesante tener estas copias en al menos dos sitios distintos (el ordenador local y un disco duro externo por ejemplo en el caso de aplicaciones web)

Lógicamente estos sistemas no son válidos para el caso de aplicaciones más críticas donde es aconsejable el uso de sistemas de almacenamiento de copias de seguridad profesionales.

Es aconsejable cuando almacenamos copias de seguridad en dispositivos externos (discos duros, pendrives, etc) destinar estos elementos sólo a este uso.

En todo caso es muy importante verificar de vez en cuando el correcto estado de los dispositivos dónde se tenga la copia de seguridad y de ésta misma para asegurarnos de que en caso de ser necesaria ésta sea plenamente operativa.

Los ficheros propios de PrestaShop

Estos son generalmente los menos críticos dado que siempre estaremos a tiempo de realizar una reinstalación de la aplicación en caso de problemas. En todo caso siempre es recomendable una vez tenemos nuestra aplicación es altamente recomendable realizar una copia de seguridad cuanto nuestra instalación de PrestaShop esté totalmente operativa. De esta forma evitaremos tener que reconfigurar de nuevo nuestra aplicación en caso que tener que reinstalarla.

Para realizar esta copia nos conectaremos por FTP a nuestro servidor y copiaremos todos los ficheros de nuestro sitio web a nuestro equipo local y/o  a un disco duro externo. Podemos comprimir la información con cualquiera de los formatos existentes, por ejemplo ZIP.

La Base de datos

Este es sin duda el elemento más importante del que debemos tener copia de seguridad ya que almacena prácticamente todos los datos de la aplicación, de los productos, de los clientes, de las transacciones, etc. Por ello deberemos realizar como mínimo una copia diaria, identificándola con la fecha y hora en que se ha realizado y deberemos tener almacenadas al menos las copias correspondientes a una semana.

La base de datos de PrestaShop es una base de datos en MySql. El proceso para realizar la copia de seguridad de la Base de Datos consisten en realizar un DUMP de la misma, es decir crear un fichero con todas las instrucciones SQL de MySql para la creación de las tablas e índices así como el contenido de las mismas. En el caso de disponer de una versión 1.6 o superior podemos realizar la copia de seguridad desde el propio panel de administración de PrestaShop.

copia-seguridad-prestashop

Para ello accederemos a la opción Parámetros Avanzados -> Respaldar BD. Haremos clic en el botón “He leído la advertencia. Crear una nueva copia de seguridad”. Tras ello se generará la copia de seguridad. Finalmente haremos clic en el botón “Descargar la copia de seguridad” para descargar el fichero de la copia de seguridad y almacenarlo dónde nos interese.

Otra opción para realizar la copia de seguridad de la base de datos de nuestro PrestaShop consiste en conectarnos directamente a la misma mediante PhpMyAdmin. Para ello deberemos conocer los datos de acceso a la base de datos: URL de acceso a la base de datos (Host), nombre de usuario y contraseña. Generalmente desde el panel de control (cpanel, plesk o similar) de nuestro dominio, hosting o servidor también tendremos la opción de acceder a la gestión de la base de datos mediante PhpMyAdmin.

bbdd-plesk

La imagen muestra la ventana para la gestión de bases de datos de Parallel Plesk. En ese caso pulsando sobre la opción WebAdmin de la base de datos que nos interese nos abrirá la ventana de PhpMyAdmin en nuestro navegador.

export-phpmyadmin

Como muestra la imagen anterior, dentro de PhpMyAdmin accederemos a la opción Exportar, yo personalmente prefiero escoger la opción personalizada seleccionar todas las tablas, no incluir comentarios y comprimir en formato zip el fichero de exportación. Cuando pulsemos sobre el botón Continuar del final de esta página se creará el fichero y se descargará a nuestro equipo para que podamos almacenarlo allí donde nos interese.

Copia de otros datos

Para concluir nuestra copia de seguridad de PrestaShop no debemos olvidarnos de otros datos como pueden ser las imágenes de nuestros productos. Aunque en caso de problema siempre podemos tratar de volver a importarlas una vez realizada la restauración de una base de datos esto puede resultar un proceso farragoso y lento. Por ello podemos realizar una copia de vez en cuando de las imágenes de nuestros productos que están en la carpeta /img por FTP. Debemos tener en cuenta que estos ficheros pueden ocupar bastante por lo que este proceso de copia puede ser muy lento.

Restauración de datos de una copia de seguridad de Prestashop

En primer lugar y, aunque parezca una tonteria debemos asegurarnos antes de realizar una restauración que realmente es necesaria, que realmente se han corrompido o perdido ficheros o datos.

Es interesante determinar si el problema está en los ficheros, en la base de datos o en ambos elementos ya que trataremos de restaurar sólo lo necesario.

Para restaurar los ficheros de la copia de seguridad de Prestashop nos conectaremos por FTP y subiremos estos archivos de la ubicación de la copia de seguridad a nuestro servidor sobreescribiendo los existentes.

La restauración de la base de datos puede ser algo más compleja. Si el fichero de Dump no es demasiado grande, por debajo de los 8 MBytes, podemos acceder a PhpMyAdmin tal como lo hicimos para hacer la copia de seguridad, escoger la opción Importar.

import-phpmyadmin

Y escogeremos el fichero que contiene la última copia de seguridad de nuestra base de datos para importarla.

Si el fichero es demasiado grande para ser importado directamente desde PhpMyAdmin podemos tratar de trocearlo e importarlo por partes o bien utilizar una herramienta como BigDump para importar ficheros grandes a PhpMyAdmin.

Plesk General Error 1030

Plesk General Error 1030

El otro día, en uno de los servidores con Ubuntu que gestiono al intentar acceder al panel de Plesk obtenía como respuesta el siguiente mensaje de error:

Error Zend_Db_Statement_Exception SQLSTATE[HY000]: General error: 1030 Got error 28 from stroage engine (Pdo.php:234), en resumen Plesk General Error 1030.

Y no conseguía acceder a dicho panel. Reinicié el servidor pero el problema seguía.  Tras investigar sobre dicho error llegue a la conclusión que se debía a una falta de espacio en disco que impedía que se pudiese iniciar el servicio de MySql.

Para solventarlo me conecté por SSH, en mi caso utilicé la aplicación Putty. En primer lugar traté de iniciar el servicio de MySql con el comando

# /etc/init.d/mysqld start

Observando que el servicio no se iniciaba, pasé a comprobar el estado de ocupación del disco

# df -h
Pudiendo comprobar que no tenia espacio libre en el disco, así que lo siguiente que ejecuté fue una instrucción para obtener los ficheros del disco de mayor tamaño con

# du -Sh | sort -rh | head -n 15

Y pude comprobar que tenia un fichero de log que había crecido inusitadamente hasta ocupar prácticamente todo el espacio de servidor. Curiosamente el día antes había estado trasteando la aplicación que generaba ese fichero. Así que eliminé el fichero de log, reinicié el servidor, corregí el error en la aplicación que generaba el log y solucionado.

 

Actualizar la pasarela de pago de RedSys

Actualizar la pasarela de pago de  RedSys antes del próximo 23/11/2015 .

Si usted tiene un comercio online es muy probable que utilize las pasarelas de pago de RedSys ya que engloba a un gran número de los bancos de este país. Antes del próximo 23/11/2015 hay que actualizar la pasarela de pago de RedSys.

logo-redsys

A partir de esta fecha hay un cambio importante en esta plataforma ya que pasa de utilizar un tipo de encriptación SHA1 a HMAC SHA 256, esta es una mejora importante ya que conlleva un importante aumento en la seguridad de las transacciones.

Tanto si usted utiliza una plataforma de eComerce estándar (Magento, Prestashop, etc…) como si utiliza un desarrollo a medida de eComerce es muy importante que antes del 23/11/2015 actualice bien sus módulos de gestión de cobros con RedSys, bien la programación de su desarrollo a medida ya que de otra forma no podrá realizar cobros desde su tpv virtual.

Desde m3 Software podemos ayudarle a realizar esta actualización estudiando su caso en particular y ofrecerle la mejor solución para llevar a cabo esta actualización.

En el siguiente enlace puede obtener más información directamente de redsys del proceso para actualizar la pasarela de pago de RedSys.

 

Ocultar la extensión php en nuestras páginas

Veamos como ocultar  la extensión php en la url de nuestras páginas PHP.

Cuando programamos nuestras páginas web con PHP los archivos deben de tener la extensión php.  En este post veremos como ocultar la extensión php, esto, además de mejorar estéticamente la url de nuestras páginas, proporciona un pequeño extra de seguridad a nuestras páginas tratando de ocultar en que lenguaje de programación están realizadas y nos permite disponer de URLs mucho más amigables, aspecto éste muy importante en lo que se refiere al SEO de nuestra página y su posicionamiento en los buscadores como Google.

La forma más usual de ocultar la extensión php es utilizar el fichero .htaccess que debe encontrarse en el directorio principal, raíz, de nuestro sitio web.

Antes de editar el fichero .htaccess siempre es muy importante realizar una copia de seguridad del mismo para que, en caso de error, siempre podamos restablecer la versión anterior de este fichero.

Para editarlo nos conectaremos por ftp con alguna herramienta como filezilla y lo editaremos directamente desde esta herramienta o lo descargaremos y lo editaremos en nuestro equipo para, posteriormente subirlo modificado.

En nuestro fichero .htaccess añadiremos el siguiente código:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Y, lógicamente, eliminaremos la extensión .php en todos los enlaces internos a nuestras páginas, así por ejemplo:

<a href="index.php">...</a>

pasará a ser

<a href="index">...</a>

Desde m3 Software realizamos habitualmente aplicaciones PHP.

Conectar PHP con MySql

Es muy habitual tener que utilizar una base de datos para almacenar aquellos datos que se gestionan desde nuestro sitio web. Si programamos con PHP, aunque podemos utilizar otros sistemas de bases de datos el más habitual es MySql.

En este post explicaremos como conectar PHP con MySql y mostrar los datos de una pequeña consulta en una tabla en pantalla.
Supongamos que tenemos una base de datos de nombre miBase en un servidor local: localhost con una tabla llamada tblCiudades que tiene los siguientes datos:

ID_CIUDADciudadpoblacion
00001Barcelona1161000
00002Madrid3160000
00003Sevilla700200
00004Valencia800000
00005Bilbao350000

El usuario y contraseña de acceso a la base de datos son miUsuario y miContrasena respectivamente.

 

Vamos a crear una página con PHP llamada misCiudades.php que nos muestre estos datos.

Primero creamos una función que conecte con la base de datos:

<?php
//datos de la conexión a la base de datos
$connection; 
$strHostName = "localhost"; //nombre del servidor $strUserName = "miUsuario"; //usuario de la base de datos 
$strPassword = "miContrasena"; //contraseña del usuario 
$strDbName = "miBase"; //nombre de la base de datos

function dbconnecta()
{
 global $connection;
 global $strHostName;
 global $strDbName;
 global $strUserName;
 global $strPassword;
//creamos una conexión a la base de datos
$connection = mysql_connect($strHostName, $strUserName, $strPassword);
if (!$connection)
 {
 echo "<br />ERROR DE CONEXIÓN AL SERVIDOR.<br />\n";
 return false;
 }

// tenemos la conexión en $connection si ha podido conectar, ahora seleccionamos la base de datos.

if (!mysql_select_db($strDbName, $connection))
 {
 echo $strDbName;
 die('<br />ERROR DE ACCESO A LA BASE DE DATOS: ' . mysql_error());
 return false;
 }
}


Creamos la función de desconectar.

 function dbdesconnecta()
 {
 global $connection;
 mysql_close($connection);
 return true;
 }

Finalmente crearemos el código que, utilizando estas funciones, nos realice una consulta a la tabla tblCiudades y mostramos los datos en pantalla.

//Almacenamos la consulta SQL a realizar en una variable
$miConsulta="SELECT id_ciudad,ciudad,poblacion FROM tblCiudades;";
dbconnecta() ;//conectamos con la base de datos
$dades = mysql_query($consultaSql);//almacenamos el resultado de la query en $dades.

//creamos una tabla html
echo "</table><tr><th>id_ciudad</th><th>ciudad</th><th>poblacion</th></tr>";

while($row= mysql_fetch_row($dades))//Recorremos todas las filas de datos (registros) del resutado de la query $dades
{
  echo "<tr>";
  echo "<td>".$row[0]."</td>";//campo 0 -> id_ciudad.
  echo "<td>".$row[1]."</td>";//campo 1 -> ciudad.
  echo "<td>".$row[2]."</td>";//campo 2 -> población.
  echo "</tr>";
}

//cerramos la tabla
  echo "</table>";

Finalmente cerramos el acceso a la base de datos

  dbdesconnecta();
?>

Este sistema nos permite reutilizar las funciones dbconnecta() y dbdesconnecta() siempre que tengamos que acceder a la base de datos.