CASE WHEN 'CampoEnCuestion'= 0 THEN 'Salida' ELSE 'OtraSalida' END
Mostrando entradas con la etiqueta MySql. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySql. Mostrar todas las entradas
lunes, 22 de diciembre de 2014
MySql - Condicional en query
En ocasiones puede ser que necesitemos colocar un condicional dentro de una Query, esto no es una practica nada recomendable, ya que afecta mucho al rendimiento, siempre que sea posible deberemos hacerlo desde el lenguaje que valla a recibir esta info (PHP, JAVA, JS, etc...), un if/else es muchísimo mas rápido y consume muchos menos recursos que la siguiente sentencia.
jueves, 16 de enero de 2014
Comprobar todas las tablas de una base de datos - MySql
Cuando programamos web, es muy habitual usar bases de datos MySQL, en estos casos seguramente hayamos tenido la necesidad de usar la orden CHECK TABLE ''tablename'' para comprobar que nuestra tabla no este corrupta por alguna sentencia SQL que se haya quedado a medias, o por alguna otra razon; pero... y cuando lo queremos hacer en todas nuestras tablas??
Para ello deberemos entrar por SSH en nuestro servidor, logueandonos con nuestro usuario y contraseña, seguramente si estamos en un servidor compartido no tengamos acceso, en ese caso creo que lo mejor sera contactar con nuestro proveedor de hosting.
Una vez estemos logeados deberemos teclear en la consola lo siguiente:
Un saludo y espero os resulte de utilidad
Para ello deberemos entrar por SSH en nuestro servidor, logueandonos con nuestro usuario y contraseña, seguramente si estamos en un servidor compartido no tengamos acceso, en ese caso creo que lo mejor sera contactar con nuestro proveedor de hosting.
Una vez estemos logeados deberemos teclear en la consola lo siguiente:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databasesCambiando root por nuestro usuario de la BBDD; y la p es para que pida la pass, la cual deberemos teclear en la consola, recuerda que no aparecen ni *(asteriscos) ni nada mientras la escribes, no pierdas el hilo por que no sabras por donde vas, otra opcion es cambiar la -p de por -NuestraPassword aunque no se recomienda, ya que se enviaria sin encriptar, y quedaria legible para personas que pasaran cerca nuestra.
Un saludo y espero os resulte de utilidad
viernes, 17 de mayo de 2013
Symfony - Doctrine\ORM\Mapping\MappingException
[Doctrine\ORM\Mapping\MappingException]
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.
Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:
/*
*@ORM\Entity
*/
class Tienda{
.......
En lugar de
/**
*@ORM\Entity
*/
class Tienda{
.......
el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.
Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:
/*
*@ORM\Entity
*/
class Tienda{
.......
En lugar de
/**
*@ORM\Entity
*/
class Tienda{
.......
el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion
lunes, 6 de mayo de 2013
Obtener Todos los registros de una tabla, y que no aparecen en otra
Con este sencillo codigo SQL podemos obtener todos los registros de la tabla 1 y que no existen en la tabla 2
Un ejemplo seria obtener todas las preguntas (tabla2)que no an sido respondidas por un usuario (tabla1) en concreto
Select * from Tabla1 where not exists (select * from Tabla2 where Tabla2.pregId = Tabla1.id and Tabla2.usuValorado =3)
Un ejemplo seria obtener todas las preguntas (tabla2)que no an sido respondidas por un usuario (tabla1) en concreto
Select * from Tabla1 where not exists (select * from Tabla2 where Tabla2.pregId = Tabla1.id and Tabla2.usuValorado =3)
jueves, 12 de abril de 2012
Crear BBDD My Sql
Aunque lo explico por encima en otro post no tengo ninguno dedicado a ello exclusivamente, así que aquí va
pasos atrás ya instalamos MySql y PhpMyadmin, cuando instalamos nuestro Servidor con Xampp .
Ahora abriremos el panel de control de Xampp, y le daremos al botón de admin dentro de MySql
pasos atrás ya instalamos MySql y PhpMyadmin, cuando instalamos nuestro Servidor con Xampp .
Ahora abriremos el panel de control de Xampp, y le daremos al botón de admin dentro de MySql
Se nos abrirá la pagina del PhpMyAdmin y deberemos darle al botón de bases de datos que tenemos en la parte superior a la izquierda.
Allí veremos todas las BBDD que tengamos creadas, pero tan solo nos interesa la parte superior para crearlas.
Nosotros añadiremos como nombre Rogama_pruebaZF Con esto estamos haciendo que la nueva BBDD pertenezca al usuario Rogama, que ya tenemos creado en nuestra BBDD con un usuario y una contraseña, podéis crear vuestros usuarios y darle distintos permisos, y contraseñas desde la pestaña de Privilegios si no queréis crear la BBDD para un usuario en concreto pon simplemente pruebaZF El usuario sera root, el cual tiene permisos totales a todas las bases de datos (como supondrás esto es muy peligroso)
Cuando ya hallamos decidido con que usuario crear nuestra base de datos, le daremos al Botón Crear, y listo, ya tenemos nuestra BBDD creada, ahora tan solo nos queda crear sus tablas, para el ejemplo vamos a usar solo una.
Para abrir la BBDD deberemos pinchar encima de su nombre, en cualquiera de los listados de bases de datos.
Cuando la hallamos abierto tendremos visiblemente todas nuestras tablas (ahora esta vació) y lo que vemos en la imagen de debajo.
Alli Escribiremos el nombre de la Tabla, y pondremos el numero de campos que tendrá, para el ejemplo con 3 nos vale; así que el nombre sera TablaPrueba y el numero de columnas un 3, y le daremos al botón de continuar.
Se nos abrirá una ventana en la que deberemos rellenar los nombres de los campos, definir la clave principal (Primary Key) y el tipo de campos junto a su longitud.
- En la primera columna definiremos el Id, su nombre sera "Id", es de tipo Int, en el indice seleccionaremos Prymary, y marcaremos la casilla autoincrement. Con esto logramos que el Id no se repita y que automáticamente valla creciendo con cada insercion a esta tabla.
- En la segunda columna definiremos el titulo, su nombre sera Titulo, de tipo Varchar con una longitud de 100 caracteres.
- En la tercera definiremos un comentario, con el nombre de Comentario, tipo Varchar, y longitud de 500 caracteres.
Una vez definido esto iremos a la parte inferior de la pagina y le daremos a Guardar si le damos a continuar, nos creara otra columna, o el numero de columnas que definamos en el campo de al lado.
Con esto ya tenemos nuestra TablaPrueba creada, en el siguiente post, veremos como meter datos con el framework de zend para php
miércoles, 21 de marzo de 2012
Configurar conexion BBDD
Cosa sencilla, tan solo deberemos crear una nueva pagina con este código
<?php
mysql_connect("TuServer"," TuUsuario "," TuContraseña") ;
mysql_select_db(" TuBaseDeDatos ");
?>
<?php
mysql_connect("TuServer"," TuUsuario "," TuContraseña") ;
mysql_select_db(" TuBaseDeDatos ");
?>
Otra forma de hacerlo, un poco mas completa seria:
$conexion=mysql_connect("TuServer","TuUsuario","TuContraseña")
or die("Problemas en la conexion");
mysql_select_db("TuBaseDeDatos",$conexion)
or die("Problemas en la selección de la base de datos");
De esta ultima forma si ocurriera un error en la conexión o a la hora de seleccionar la BBDD nos saldría un error avisandolo.
$conexion=mysql_connect("TuServer","TuUsuario","TuContraseña")
or die("Problemas en la conexion");
mysql_select_db("TuBaseDeDatos",$conexion)
or die("Problemas en la selección de la base de datos");
De esta ultima forma si ocurriera un error en la conexión o a la hora de seleccionar la BBDD nos saldría un error avisandolo.
Esta pagina puede llamarse: ConexionABBDD.php (por ejemplo)
después tendremos que llamarla desde cada una de las paginas que accedan a los datos, o por lo menos a esa misma tabla (esto podría mejorarse metiendo una función que pida un nombre de una tabla en concreto y que mediante un switch te conecte con una o con otra tabla por ejemplo)
Para llamar a esta pagina desde las demás deberemos copiar este código antes de cualquier llamada a los datos:
require_once('RutaDeTuPagina/TuPagina.php');
Un ejemplo seria:
require_once('./Funciones/ConexionABBDD.php');
PD: aunque aquí no venga a cuento, tan solo recordar que si pasas estos datos por alguna variable que nunca contenga "ñ" como por ejemplo en contraseña ya que da problemas, en su día yo me volví loco, para hacer un simple login que me comparaba el nombre de usuario con la contraseña almacenada en la BBDD, y me dejaba entrar o no, es lo que tiene ser novato XD.
Instalacion de Server
Acabo de descargar Xampp desde http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.7/xampp-win32-1.7.7-VC9-installer.exe/download ya que en otra ocasión probe otros autoinstaladores, y tube algun problema, de este siempre e oído hablar bien, ya veremos que tal ... XD
La ultima versión para windows es la 1.7.7 descarga un instalador bastante rapido, y de primeras es sencilla, sin grandes complicaciones, pregunta si queremos instalar como servicio el apache, el PhpMyAdmin, y el Filecilla Server e activado todos menos el Filecilla, ya que no voy a usarlo como servidor de archivos, solo para probar la web, y con el apache y la BBDD me sobra.
Casi terminando la instalacion se abre una pantalla de MSDos en donde el solo hace una serie de tareas y se cierra, al terminar la instalacion se abre otra aparentemente para configurar los servicios, me ha dado error el apache ya que tengo los puertos 80 y 443 ocupados con el Team Viewer.
En el Team Viewer, hay que ir a la opción de Extras > Opciones > Avanzado > Mostrar Opciones avanzadas > y allí casi al final marcar la casilla que dice no usar los puertos 80 y 443 solo recomendado para servidores
Aun asi no me termina de arrancar el servicio de Apache, así que voy a reiniciar.
Listo ambos servicios funcionando.
Me arranca perfectamente el phpMyAdmin, después de ponerlo en castellano, me voy a http://cpanel.99h.com.ar, para descargarme la BBDD, para ello hay que entrar en El PhpMyAdmin del servidor, y seleccionar la BBDD que quieres descargar.
Por ultimo es importante que en 1 Tengamos seleccionado Todas las tablas, o al menos todas las que nos interesen, que en 2 marquemos la casilla que nos descarga el archivo, de lo contrario se nos abrirá una nueva pestaña ne la que tendremos la Query para copiar y pegar, pero aparte de que descargandolo automáticamente es mas cómodo, y nos lo baja en un archivo SQL directamente, evitamos posibles errores, para finalizar Presionar en 3
Crear la BBDD en local no tiene complicación alguna debemos ir al PhpMyAdmin crear la BBDD con el nombre que queramos, y después darle al botón que esta justo a la derecha del que hemos usado antes (el de exportar) para en esta ocasión darle a importar, allí seleccionamos el archivo que nos hemos descargado antes y el solo nos creara todas nuestras tablas, y su contenido.
Ya tenemos nuestra BBDD Creada y con los mismos datos que en el servidor Web, ahora solo nos faltan nuestras propias paginas podemos entrar a nuestro FTP y descargarnosla, o si tenemos alguna copia de seguridad (como es el caso) copiarla directamente en:
C:\xampp\htdocs\poque
donde C:\xampp\ es la ruta donde tenemos instalado nuestro servidor
htdocs es donde deberemos alojar nuestras webs
poque es una carpeta que he creado ,para alojar una copia de http://www.poque.es
Para acceder a nuestras webs, en local tan solo deberemos abrir cualquier navegador y allí teclear http://localhost/poque/
La ultima versión para windows es la 1.7.7 descarga un instalador bastante rapido, y de primeras es sencilla, sin grandes complicaciones, pregunta si queremos instalar como servicio el apache, el PhpMyAdmin, y el Filecilla Server e activado todos menos el Filecilla, ya que no voy a usarlo como servidor de archivos, solo para probar la web, y con el apache y la BBDD me sobra.
Casi terminando la instalacion se abre una pantalla de MSDos en donde el solo hace una serie de tareas y se cierra, al terminar la instalacion se abre otra aparentemente para configurar los servicios, me ha dado error el apache ya que tengo los puertos 80 y 443 ocupados con el Team Viewer.
En el Team Viewer, hay que ir a la opción de Extras > Opciones > Avanzado > Mostrar Opciones avanzadas > y allí casi al final marcar la casilla que dice no usar los puertos 80 y 443 solo recomendado para servidores
Aun asi no me termina de arrancar el servicio de Apache, así que voy a reiniciar.
Listo ambos servicios funcionando.
Me arranca perfectamente el phpMyAdmin, después de ponerlo en castellano, me voy a http://cpanel.99h.com.ar, para descargarme la BBDD, para ello hay que entrar en El PhpMyAdmin del servidor, y seleccionar la BBDD que quieres descargar.
Despues deberemos dar al boton de Exportar
Crear la BBDD en local no tiene complicación alguna debemos ir al PhpMyAdmin crear la BBDD con el nombre que queramos, y después darle al botón que esta justo a la derecha del que hemos usado antes (el de exportar) para en esta ocasión darle a importar, allí seleccionamos el archivo que nos hemos descargado antes y el solo nos creara todas nuestras tablas, y su contenido.
Ya tenemos nuestra BBDD Creada y con los mismos datos que en el servidor Web, ahora solo nos faltan nuestras propias paginas podemos entrar a nuestro FTP y descargarnosla, o si tenemos alguna copia de seguridad (como es el caso) copiarla directamente en:
C:\xampp\htdocs\poque
donde C:\xampp\ es la ruta donde tenemos instalado nuestro servidor
htdocs es donde deberemos alojar nuestras webs
poque es una carpeta que he creado ,para alojar una copia de http://www.poque.es
Para acceder a nuestras webs, en local tan solo deberemos abrir cualquier navegador y allí teclear http://localhost/poque/
Problemilla
Problemilla, o problemón, según el punto de vista.
Llevo unos días (6 concretamente) con un problema en la pagina principal de http://www.poque.es en la cual me decidí por añadir un chat, el cual no esta terminado, le quedan muchas mejoras, pero ya esta en funcionamiento, tan solo son 2 cuadros de texto en los que escribes el alias con el que quieres identificarte, y el mensaje que quieres enviar, al dar al botón de enviar, guardo esos datos en una BBDD en MySQL, para mostrar los mensajes, tengo un iframe a otra pagina, que se recarga cada segundo mostrando los mensajes que tengo guardados en la BBDD, esto lo hago así para no recargar la pagina entera, con el consiguiente consumo de datos innecesario , y molestias a los usuarios especialmente si estas escribiendo y se te recarga....
el problema me viene dado al rato de permanecer tanto inactivo, como escribiendo, en la pagina principal, aparece la pagina que recargo (la de los mensajes del chat) como que no esta accesible, como si estuviera caída, recargas la pagina, y te dice lo mismo para la web entera, aunque la misma sigue Online, ya que entrando con otra Ip si esta accesible, imagino que el servidor tiene algun tipo de bloqueo.
He estado investigando por Internet, leí algo de que después de 2000 peticiones el servidor bloquea la Ip por seguridad, durante 24h eso me daría unos 33 minutos; he escrito al servidor en el que alojaba la web para comentar este asunto, su respuesta en perfecto ingles fue que lo han revisado 2 veces y funciona perfectamente, que si tengo problemas que use un proxy, y que les pague para conseguir mas velocidad, a lo que les respondí, que quería empezar a pagar el servidor en mayo (fecha en la que cumplo un año con la web operativa y en la que me gustaría poder empezar a cobrar), pero que necesitaba resolver el problema, que si pagando me garantizaban que se resolviera también les dije que por mi no hay problema en usar un proxy para saltarme el bloqueo, pero que no podía pedir a todos los visitantes que usaran un proxy.
Su respuesta fue un completo copia y pega de la anterior...
como consecuencia me cambie de servidor con la esperanza de que se resolviera este problema, pero mi gozo en un pozo, sigo igual, también les he escrito contándoles lo mismo.
la respuesta que me dieron fue: (Copio y pego)
Cuando la ip en la que se accede al PANEL es detectada rara, pues se bloquea, pero la del sitio web no bloquea a nadie mas, saludos.
mi respuesta es que no tengo problemas para entrar al panel, que es a la web, y que conocidos mios que solo entran a la web, tienen el mismo problema
sigo esperando respuesta, os mantendré informados con lo que suceda, mientras volveré a intentar instalar un servidor en mi pc, e intentare recrear el de esta gente, a ver si me falla y doy con alguna solución en local
Llevo unos días (6 concretamente) con un problema en la pagina principal de http://www.poque.es en la cual me decidí por añadir un chat, el cual no esta terminado, le quedan muchas mejoras, pero ya esta en funcionamiento, tan solo son 2 cuadros de texto en los que escribes el alias con el que quieres identificarte, y el mensaje que quieres enviar, al dar al botón de enviar, guardo esos datos en una BBDD en MySQL, para mostrar los mensajes, tengo un iframe a otra pagina, que se recarga cada segundo mostrando los mensajes que tengo guardados en la BBDD, esto lo hago así para no recargar la pagina entera, con el consiguiente consumo de datos innecesario , y molestias a los usuarios especialmente si estas escribiendo y se te recarga....
el problema me viene dado al rato de permanecer tanto inactivo, como escribiendo, en la pagina principal, aparece la pagina que recargo (la de los mensajes del chat) como que no esta accesible, como si estuviera caída, recargas la pagina, y te dice lo mismo para la web entera, aunque la misma sigue Online, ya que entrando con otra Ip si esta accesible, imagino que el servidor tiene algun tipo de bloqueo.
He estado investigando por Internet, leí algo de que después de 2000 peticiones el servidor bloquea la Ip por seguridad, durante 24h eso me daría unos 33 minutos; he escrito al servidor en el que alojaba la web para comentar este asunto, su respuesta en perfecto ingles fue que lo han revisado 2 veces y funciona perfectamente, que si tengo problemas que use un proxy, y que les pague para conseguir mas velocidad, a lo que les respondí, que quería empezar a pagar el servidor en mayo (fecha en la que cumplo un año con la web operativa y en la que me gustaría poder empezar a cobrar), pero que necesitaba resolver el problema, que si pagando me garantizaban que se resolviera también les dije que por mi no hay problema en usar un proxy para saltarme el bloqueo, pero que no podía pedir a todos los visitantes que usaran un proxy.
Su respuesta fue un completo copia y pega de la anterior...
como consecuencia me cambie de servidor con la esperanza de que se resolviera este problema, pero mi gozo en un pozo, sigo igual, también les he escrito contándoles lo mismo.
la respuesta que me dieron fue: (Copio y pego)
Cuando la ip en la que se accede al PANEL es detectada rara, pues se bloquea, pero la del sitio web no bloquea a nadie mas, saludos.
mi respuesta es que no tengo problemas para entrar al panel, que es a la web, y que conocidos mios que solo entran a la web, tienen el mismo problema
sigo esperando respuesta, os mantendré informados con lo que suceda, mientras volveré a intentar instalar un servidor en mi pc, e intentare recrear el de esta gente, a ver si me falla y doy con alguna solución en local
Suscribirse a:
Entradas (Atom)