Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: URKA84 en 09 de Agosto 2014, 18:09

Título: SQL y PHP, haciendo una página web SELECT con fechas
Publicado por: URKA84 en 09 de Agosto 2014, 18:09
Hola, ¿qué tal?

Me llamo leo, he escrito antes en el foro aprendizaje.

Ahora estoy haciendo mi propia página web, para aprender.

Tengo un problema en el que quizás me podáis ayudar.

-He creado una base de datos en 000webhost
-He creado un archivo html que se supone debe enseñar los datos relacionados a una fecha (mostrádose como un calendario).
-He conseguido que se muestre por pantalla lo que ocurre el día 01/01/2014, pero quiero que se muestre TODO lo que ocurre en ese mes, es decir el 03/01/2014 y el 04/01/2014 también.
-El código php está "dentro" del html y contiene a su vez el código SQL. He escrito SELECT * FROM valencia WHERE fecha_inicio = '01/01/2014' y funciona. Si sustituyo el '01' inicial por '*' no me muestra nada por pantalla.

No sé si estoy utilizando mal el asterisco. A ver si vosotros me podéis ayudar.
Incluyo el código debajo:

PHP:
Código: [Seleccionar]
<?php 
    
$link mysql_connect("mysql13.000webhost.com","a4047274_fiestas","urkaka12");

mysql_select_db("a4047274_fiestas"$link);

$result mysql_query("SELECT * FROM valencia WHERE fecha_inicio = '01/01/2014'"$link);


while($row mysql_fetch_array($result)){
echo "<hr>";
echo "Pueblo: ".$row['pueblo']."<br>";
echo "Fiesta: ".$row['fiesta']."<br>";
}

mysql_free_result($result);
mysql_close($link);
echo "<hr>";
?>

Gracias.
Título: Re:SQL y PHP, haciendo una página web
Publicado por: juanitoXD en 09 de Agosto 2014, 18:48
Hola, SELECT * FROM valencia WHERE fecha_inicio = '01/01/2014' lo que hace es tomar los datos de la fila donde fecha_inicio sea igual a 01/01/2014

Para tomar todos los datos existentes entre varias fechas usa between como aquí:

SELECT *
FROM `miTabla`
WHERE (fecha_inicio BETWEEN '2024-01-01 00:00:00' AND '2024-01-31 00:00:00')

Esto suponiendo que las fechas en la base de datos las tengas con un formato date normalizado, de ahí que la fecha haya que escribirla conforme a ese formato normalizado  :D
Título: Re:SQL y PHP, haciendo una página web
Publicado por: URKA84 en 09 de Agosto 2014, 19:03
Pero si la fecha fuese tipo "caracter" ¿no se podría utilizar '*' en el SELECT?

Me ha gustado tu forma de resolverlo, y lo haré así, pero creo que tarde o temprano necesitaré buscar palabras que comiencen por una letra o conjunto de letras.

Gracias, y perdona las molestias.

PD: gracias por responder tan rápido.
Título: Re:SQL y PHP, haciendo una página web
Publicado por: juanitoXD en 09 de Agosto 2014, 19:16
Si es una fecha en tu base de datos debería estar como fecha, no como cadena de texto o caracter porque a la larga eso te daria problemas.

Lo que comentas para búsquedas por caracteres, en MySql el comodín equivalente al asterisco no es * sino %, tendrías que escribir algo como esto:

SELECT * FROM `miTabla` WHERE `miCampo` LIKE '%noche%'

Esto te haría una selección de todas las filas donde el campo contenga un texto que contenga la palabra noche. Si fuera para que empiece por un texto sería:

SELECT * FROM `miTabla` WHERE `miCampo` LIKE 'noche%'

También puedes intercalar %, etc. para crear tus propias combinaciones

Saludos cordiales
Título: Re:SQL y PHP, haciendo una página web
Publicado por: URKA84 en 10 de Agosto 2014, 09:50
Gracias por tu respuesta.
Me ha sido muy útil.