Hola,
Soy nuevo en programación y posiblemente esté haciendo una pregunta básica para muchos, pero he buscado en todas partes y no consigo respuesta.
Mi duda es relativa a las tablas temporales en MySQL. Estoy trabajando con PHP.
Quiero crear una tabla temporal a partir de una consulta a una tabla permanente con datos que provienen de un formulario desde la página anterior ($_POST):
Código PHP:
$consulta = "CREATE TEMPORARY TABLE Tienda_tmp SELECT * FROM Tienda WHERE (IdTienda LIKE '%$_POST[IdTienda]%' AND NombreTienda LIKE '%$_POST[NombreTienda]%')";
Luego quiero trabajar sobre la tabla temporal para mostrar los elementos que me interesan y así poder ordenarlos por cualquiera de sus columnas. Así que hago una consulta a la tabla temporal en el mismo script a continuación de la creación de la tabla:
Código PHP:
$consulta2 = "SELECT * FROM Tienda_tmp ORDER BY $orden";
Hasta aquí todo funciona perfectamente. Consigo mostrar al usuario una tabla con $consulta2 con los valores que ha seleccionado.
El problema viene cuando realizo realizo otra consulta sobre la tabla (otra $consulta2) para ordenar según $orden, simplemente no puede realizar la consulta porque
la tabla no existe.
En cada fichero *.php tengo al inicio:
Código PHP:
session_start();
Había leido que las tablas temporales existen mientras se mantenga abierta la sesión. Mientras no la cierre, la tabla debería estar disponible.
A lo mejor tengo un problema de concepto y por eso no veo por qué la tabla no está disponible, o a lo mejor, debería utilizar otro procedimiento para conseguir lo que pretendo.
Muchas gracias.
Daniel.