Archivo de la categoría: Programación

Consulta SQL que muestre datos aleatorios (MySQL)

Para sacar de una tabla los resultados ordenados de manera aleatoria se utiliza «RAND()».

Pongamos el caso que de una tabla que tiene 550 registros queremos sacar 20 de manera aleatoria. La consulta quedaría así:


SELECT * FROM nombre_tabla ORDER BY RAND() LIMIT 20;

Cada vez que realicemos la consulta sacaremos 20 registros aleatorios de los 550 que tiene la tabla «nombre_tabla».

Comprobar si un valor existe en un array (PHP)

Si tenemos un array y queremos saber si hay un valor determinado dentro de él sin tener que recorrerlo en PHP existe la función in_array, que busca dentro del array y devuelve un TRUE o FALSE.

in_array(VALOR_A_BUSCAR, $NOMBRE_DEL_ARRAY)

Ejemplo:


//Creamos el array colores
$colores = array("rojo", "azul", "verde", "amarillo");
if (in_array("verde", $colores)) {
echo "El color verde está en el array";
}else{
echo "Lo siento, el color verde NO está en el array";
}

Conectar a una base de datos MySQL con PHP

Una de las cosas más interesantes para nuestras páginas PHP es comunicarlas con una base de datos, aumentando muchísimo las posibilidades de creación de nuevas funcionalidades en nuestros sitios web.

La base de datos más extendida para el uso junto a PHP es MySQL. Para comunicar la base de datos bastan las líneas siguientes:


//Definimos las variables
$host="localhost";
$user="nombre_usuario";
$pass="contraseña";
$dbname="nombre_base_datos";

//Abrimos la conexión
$conexion=mysqli_connect($host,$user,$pass);
//Seleccionamos la base de datos con la que trabajar
mysqli_select_db($dbname,$conexion);

 

Básicamente son 4 parámetros los que necesitamos definir:

$host es la localización de MySQL, si está en el mismo servidor que Apache basta con poner «localhost», que indica que se encuentra en la misma máquina. Si está en otro servidor deberemos poner la IP en la que se encuentra. (Por ejemplo: 192.168.0.22)

$user, en esta variable definimos el usuario con permisos para iniciar sesión en la base de datos.

$pass, al igual que $user, aquí definimos la contraseña de acceso.

Y por último, ya que podemos tener varias bases de datos dentro del mismo MySQL, en $dbname definimos el nombre de la base de datos con la que vamos a trabajar en esta conexión.

 

Convertir una dirección IP a formato numérico decimal con Php

Para poder trabajar de una manera más sencilla con rangos de IPs (por ejemplo para la geolocalización de una IP) es necesario convertir la dirección IP en número decimal:

IP                            Decimal
209.85.195.104 -> 3512058728

Podéis acceder a un conversor de IP a decimal aquí

Si queréis hacer dicha conversión en PHP basta con utilizar la siguiente función:


<?php

function IPaDecimal($ip){
$ipArr = explode('.',$ip);
$ipdec = $ipArr[0] * 0x1000000
+ $ipArr[1] * 0x10000
+ $ipArr[2] * 0x100
+ $ipArr[3]
;
return $ipdec;
}

?>

Y llamar a la función pasándole la IP a convertir:


<?php

$ipDecimal = IPaDecimal("209.85.195.104");

echo($ipDecimal);

?>

El resultado de sacar por pantalla la variable $ipDecimal será 3512058728.

Métodos para redireccionar una página web (html, asp, javascript y php)

Para redireccionar automáticamente un página web podemos hacerlo de distintas formas según nos venga mejor:

HTML

Para que al cargar una página redirija automáticamente a otra, debemos insertar la siguiente línea de código HTML en cualquier parte entre las etiquetas <head></head> (la cabecera del documento HTML):

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.asp">

ASP

Si necesitas que al cargar una página asp redireccione a otra basta con utilizar Response.redirect en la primera línea del documento (o dónde quieras que realice la redirección). Es aconsejable añadir un response.end para evitar que continue con la carga de la página que redirecciona.

<%
Response.Redirect("pagina-a-la-que-redirecciona.html")
Response.End
%>

Javascript

Con javascript utilizaremos location.href de la siguiente manera:

location.href = "pagina-a-la-que-redirecciona.html";

PHP

Para PHP el metodo a utilizar es header, que añadirá nuevos parámetros a la cabecera de página y entre ellos el que nos interesa para este caso es location:

<?php
header("Location:pagina-a-la-que-redirecciona.html");
?>

En todos los casos se pueden utilizar tanto direcciones relativas:

  • index.html
  • /default.asp
  • ../../pagina.php

como direcciones absolutas:

  • http://www.google.com
  • https://blog.vermiip.es/2007/11/04/ver-mi-ip-privada/

 

Botón Javascript para imprimir una página web

Para poder imprimir una página desde un botón o enlace tenemos la función de Javascript print(). Con ella podemos realizar un enlace o botón que tendrá el mismo efecto que la opción «imprimir» del navegador.

Ejemplo: Enlace que permite imprimir una página:

<a href="#" onclick="window.print();return false;">Imprimir</a>

Se trata de un enlace vacío (href=»#») en el que definimos que en el evento «onclick» (al pinchar con el ratón) imprima la página mediante la instrucción window.print().

Ver el valor de un «Radio Button» en un formulario html en javascript

Para conocer el valor de un radio button por javascript debemos utilizar document.NOMBRE_FORMULARIO.NOMBRE_CAMPO[posición].value

Veamos un ejemplo para aclarar un poco como funciona. Dentro de una página html tenemos un formulario con varios radio buttons para valorar la calidad de un página:

<from name="formu">
type="radio" name="valora" value="mala" />Mala

type="radio" name="valora" value="regular" />Regular

type="radio" name="valora" value="buena" />Buena

type="radio" name="valora" value="muy buena" />Muy buena
</form>

Para saber si uno de los elementos que conforman el grupo de radio buttons de nombre «valora» está selecionado utilizaríamos:

if(document.formu.valora[0].checked){
alert("El primer valor está seleccionado"); //en nuestro caso "Mala"
}

Como habréis visto, el primer elemento es 0 y no 1. Ahora lo que podemos hacer es recorrernos todas las opciones hasta dar con la que esté marcada de esta manera:

for(i=0;i<document.formu.valora.length;i++){
if(document.formu.valora[i].checked) {
marcado=i;
}
}
alert("El valor seleccionado es: "+document.formu.valora[marcado].value);

*** ACTUALIZACIÓN ***

Gracias a Raúl, que me ha avisado que si sólo hay un radio button el script no devuelve el valor seleccionado, he ampliado el script anterior para que contemple esa posibilidad:


marcado=-1
if(document.formu.valora.length){
for(i=0;i<document.formu.valora.length;i++){
if(document.formu.valora[i].checked) {
marcado=i;
}
}
if(marcado!=-1)    alert("El valor seleccionado es: "+document.formu.valora[marcado].value);
}else{
if(document.formu.valora.checked){
alert("El valor seleccionado es: "+document.formu.valora.value);
}
}

Saber el ID de una inserción con PHP y MySQL

Cuando realizamos un insert en MySQL muchas veces necesitamos conocer el ID autonúmerico que nos ha asignado la base de datos para incluirla en otras consultas asociadas. Para ello, MySQL cuenta con la función mysql_insert_id(NOMBRE_CONEXION_BD) que devuelve el ID del último insert realizado por la conexión que hemos abierto a la base de datos.

Veamos un ejemplo:

$query = "INSERT INTO tabla(campo1, campo2) VALUES ('valor1','valor2');";
mysql_query($query,$conexion);
$id_query = mysql_insert_id($conexion);

echo($id_query);
//$id_query contiene el ID del último INSERT
//realizado durante la conexión a la base de datos.

 

Encriptar con MD5 en PHP

Codificar una cadena de texto en MD5 con PHP es muy sencillo gracias a las función md5(). Veamos un ejemplo:


$cadena = "Texto a encriptar";
$cadena_encript = md5($cadena);

O simplemente:

$cadena_encript = md5("Texto a encriptar");

Esta función es muy utilizada para guardar contraseñas encriptadas en base de datos. De esta manera aumentamos mucho la seguridad ya que el algoritmo MD5 es de una sola dirección, no pudiéndose desencriptar.

Generar números aleatorios en PHP

Para generar números aleatorios PHP dispone de la función rand() que devuelve un número entero aleatorio entre un máximo y un mínimo.

Para mejorar la generación de números aleatorios y prevenir que se repitan patrones, PHP dispone también de la función srand() que hará que los patrones de generación de números aleatorios cambien cada vez que se genere uno nuevo.

Opcionalmente podemos introducir una «semilla» en la función, por ejemplo: srand(time()); Esto hará que cambie el patrón según cambie «time()«. La semilla es totalmente opcional a partir de PHP 4.2.

Ejemplo:

El siguiente ejemplo genera un número entero entre 0 y 999.

srand ();  //Introducimos la "semilla"
$aleat = rand(0,999);    //rand(mínimo,máximo);