Liberando código VelneoEsfera

Siguiendo el consejo que me dio en su día David Martín aquí os pondré el código que he usado para la realización del conjunto para VelneoEsfera.

Bueno empezaremos con la base. El código para la generación de la tabla.

<?
#-----------------------------------#
#
# Script diseñado por:
#
# Javier Duran Garcia
# Contacto: javier.duran@nexusfireman.es
# Web: http://www.nexusfireman.es
#
#-----------------------------------#

include('config.php');

$link = mysql_connect($dbhost,$dbusuario,$dbpassword);
if (!$link)
 die('Error al conectarse con MySql: ' .mysql_error().'<br>Numero del error:'.mysql_errno());
if (! mysql_select_db($dbdata, $link)){
 echo "No se pudo conectar correctamente con la base de datos";
 exit();
 }

$result = mysql_query("SELECT * FROM ".$dbtabla." ORDER BY Nombre", $link);

if ($row = mysql_fetch_array($result)){

 echo "<table border = '0'> \n";

 do {
 $NomDat = espanol($row["Nombre"]);
 $AutDat = espanol($row["Autor"]);
 $DescDat = espanol($row["Descripcion"]);
 echo "<tr><td><a href=\"".$row["Web"]."\" target=\"_blank\">".$NomDat."</a><br /><strong>By ".$AutDat."</strong><br />".$DescDat."</td></tr>";
 }
 while ($row = mysql_fetch_array($result));
 echo "</table> \n<br />";
 }
 else {
 echo "No se ha encontrado ningun registro";
 }
echo "<br />";

?>

Como podemos ver en el código lo primero es hacer la llamada a la configuración. Eso no lo pongo por motivos de contraseñas y demás.

El resto es la típica llamada a la base de datos para que nos devuelva los registros y mostrarlos es una tabla.

Si estáis pensando el por que he usado las variables $NomDat, $AutDat y $DescDat la respuesta es muy sencilla. Codificación UTF-8.

Al estar en PHP me di cuenta que no ponía correctamente los caracteres como la Ñ o los acentos.

Por ese motivo puse el siguiente código dentro del config y así podía codificar a mano los caracteres y mostrarlos sin ningún problema.

function espanol($texto) //REPARA CUALQUIER TEXTO A UTF-8
{
$texto = htmlentities($texto , ENT_QUOTES); //No permite codigo HTML
$texto = str_replace("\r","<br />",$texto); //Asignar codigo espacios
$texto = utf8_encode($texto); //ENCODE A UTF-8
$texto = iconv("ASCII" , "UTF-8", $texto); // Convierte ASCII en UTF-8
return $texto;
}

Con este código lo convertimos tranquilamente y no tenemos fallos de ningún tipo.

Si lo miramos bien estamos convirtiendo el código ASCII que esta contenido en MySQL a código UTF-8.

Esta función también nos sirve para transformar muchos otros tipos de caracteres. Solo hay que cambiar el valor ASCII por el deseado.

Bueno pues con esto ya mostraremos la tabla con todos los Velneadores que estamos y con solo cambiar un par de datos estarán actualizadas para todos aquellos que usan el código que os puse.

Para el banner e usado el siguiente código.

<pre><?
#-----------------------------------#
#
# Script diseñado por:
#
# Javier Duran Garcia
# Contacto: javier.duran@nexusfireman.es
# Web: http://www.nexusfireman.es
#
#-----------------------------------#

include('config.php');

$link = mysql_connect($dbhost,$dbusuario,$dbpassword);
if (!$link)
 die('Error al conectarse con MySql: ' .mysql_error().'<br>Numero del error:'.mysql_errno());
if (! mysql_select_db($dbdata, $link)){
 echo "No se pudo conectar correctamente con la base de datos";
 exit();
 }

$result = mysql_query("SELECT * FROM ".$dbtabla." ORDER BY RAND() LIMIT 1", $link);

if ($row = mysql_fetch_array($result)){

 $NomDat = espanol($row["Nombre"]);
 $AutDat = espanol($row["Autor"]);
 $DescDat = espanol($row["Descripcion"]);

 echo "<a href=\"".$row["Web"]."\" target=\"_blank\"><img src='images/VelEsf.jpg' align='left' border='0'/></a>";
 echo "<font face='Verdana' size='2'><a href=\"".$row["Web"]."\" target=\"_blank\">".$NomDat."</a></font><br />\n";
 echo "<font face='Verdana' size='1'><strong>By ".$AutDat."</strong></font><br />\n";
 echo "<font face='Verdana' size='1'>".$DescDat."</font>";

 }

?>
<head>
<meta content="10" http-equiv="REFRESH" />
</head>
<body>
</body>
</html></pre>

Con esto es un poco distinto.

Empezamos con que en la instrucción de MySQL utilizamos ORDER BY RAND(). Gracias a esta instrucción nos facilitara un registro aleatoria de la MySQL. Simple, rápido y eficaz. Os recomiendo no usarlo en tablas con muchísimos registros o se os llevara toda la memoria en el proceso y será muy lento.

El resto como antes, veremos solo un registro y lo mostraremos. Además tenemos una imagen la cual se convierte también en un enlace al igual que el nombre para que puedan pulsar en el y así re-direccionar a las paginas de los Velneadores.

Por ultimo las etiquetas de HTML son para refrescar la pagina y así mostrar un registro cada 10 segundos.

No encontré otra forma, si alguien la conoce que me la diga y así lo cambio.

Ahora estoy intentando hacer el Banner en Flash con AS3.

Os pongo el código del PHP que se usa para conectar el Flash con la MySQL.

<?
#-----------------------------------#
#
# Script diseñado por:
#
# Javier Duran Garcia
# Contacto: javier.duran@nexusfireman.es
# Web: http://www.nexusfireman.es
#
#-----------------------------------#

include('config.php');

$link = mysql_connect($dbhost,$dbusuario,$dbpassword);
if (!$link)
 die('Error al conectarse con MySql: ' .mysql_error().'<br>Numero del error:'.mysql_errno());
if (! mysql_select_db($dbdata, $link)){
 echo "No se pudo conectar correctamente con la base de datos";
 exit();
 }

$result = mysql_query("SELECT * FROM ".$dbtabla." ORDER BY RAND() LIMIT 1", $link);

if ($row = mysql_fetch_array($result)){

 $NomDat = espanol($row["Nombre"]);
 $AutDat = espanol($row["Autor"]);
 $DescDat = espanol($row["Descripcion"]);

 echo "NomFlash=".$NomDat;
 echo "&AutFlash=".$AutDat;
 echo "&DescFlash=".$DescDat;
 echo "&WebFlash=".$row["Web"];

 }

?>

Este código recoge, al igual que antes, una entrada aleatoria de la base de datos y la pasa a Flash en variables que el entiende.

Luego para mostrarlo en el Flash usaremos el siguiente código:

import flash.net.*;

var php2:String = "velflash.php";
var req:URLRequest = new URLRequest (php2);
var loader:URLLoader = new URLLoader ();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(req);

function alCompletar(e:Event):void{
	NomPHP.text = "" + e.target.data["NomFlash"];
	AutPHP.text = "" + e.target.data["AutFlash"];
	DescPHP.text = "" + e.target.data["DescFlash"];
	loader.removeEventListener(Event.COMPLETE, alCompletar);
}
loader.addEventListener(Event.COMPLETE, alCompletar);

Aquí podemos ver como se recogen los datos y se muestran en unos textbox.

El problema me lo encuentro en que tarda mucho y la mitad de las veces no muestra los resultados.

Otra peculiaridad es que para que haga el refresco cada 10 segundos he tenido que poner un gotoAndPlay(1); en el fotograma nº 60.

Espero poder encontrar solución a estos pequeños fallos y estoy abierto a sugerencias.

Sin mas gracias a todos.

Anuncios

Acerca de NexusFireMan

Conocedor de las nuevas tecnologías, Community Manager, Bloger, Wordpress, Velneo, Social Media y encandilado con Android.

Publicado el 27/01/2010 en PHP, SQL, Velneo y etiquetado en , , , , , , , , , , , , . Guarda el enlace permanente. 2 comentarios.

  1. Muy bueno Javier.
    Gracias por compartir tu código.

  2. Gracias Francisco.

    Uno hace lo que puede. Ahora solo queda depurar los codigos para que no tenga fallos y todo perfecto 😀

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: