Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 28 Diciembre 2017, 05:28 am



Título: Como puedo selecionar el valor menor y mayor de un campo sql
Publicado por: SrTrp en 28 Diciembre 2017, 05:28 am
no se si estoy haciendo lo correcto ya que quiero especificar varios datos
asi es como intento hacerlo escojiendo el mayor de id_msj
Código
  1. $delete2 = "SELECT id_msj FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj ASC limit 0,1";
  2.  
y el menor sería así?
Código
  1. $delete2 = "SELECT id_msj FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj DESC limit 0,1";
  2.  
no se si estoy haciendo bien al poner el ORDER despues de los WHERE


Título: Re: Como puedo selecionar el valor menor y mayor de un campo sql
Publicado por: aguro90 en 28 Diciembre 2017, 12:23 pm
Si lo que quieres es borrar en un sistema de comentarios, cuando muestras el mensaje añadele un botón de borrado con el value= al id de su comentario y lo mandas a un borrar.php que borre ese id. Espero que te ayude!


Título: Re: Como puedo selecionar el valor menor y mayor de un campo sql
Publicado por: SrTrp en 28 Diciembre 2017, 22:03 pm
Lo que quiero es que me elimine el primer mensaje escribido automaticamente al escribir otro


Título: Re: Como puedo selecionar el valor menor y mayor de un campo sql
Publicado por: MeTaD en 29 Diciembre 2017, 00:27 am
Lo que quiero es que me elimine el primer mensaje escribido escrito automaticamente al escribir otro

Te recomiendo mantener un solo idioma en el código, ya sea inglés o español. id_usersend y id_userrecibe no esta para nada bien, te recomendaría usar CamelCase pero eso ya es gusto personal. Yo usaria de nombres en las tablas lo siguiente:
id_msj-->ID
id_usersend-->SenderID
id_userrecibe--ReceiverID

Esto para que sea mas mantenible tu código a futuro.


Respecto a lo que deseas hacer, si es literalmente obtener los datos con la información que tienes, lo estás haciendo bien

Para obtener el ID del mensaje menor:
Código
  1. SELECT id_msj FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj ASC LIMIT 1;

Para obtener el ID del mensaje mayor:
Código
  1. SELECT id_msj FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj DESC LIMIT 1;


Ahora, si lo que deseas es simplemente eliminar esos mensajes no veo necesidad de ejecutar dos queries cuando una puede hacerlo, actualmente obtienes el ID y supongo que despues haces un
Código
  1. DELETE FROM messajes WHERE id_msj = $delete2


Pero todo lo podias hacer desde la primer query que hiciste:

Para borrar el ID del mensaje menor:
Código
  1. DELETE FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj ASC LIMIT 1;

Para borrar el ID del mensaje mayor:
Código
  1. DELETE FROM messajes  WHERE id_usersend='$idder' AND id_userrecibe='$idreci' ORDER BY id_msj DESC LIMIT 1;



Sin embargo, eso de los ID's no me convence completamente. Te recomiendo registrar la fecha y hora al momento del mensajey usar eso mejor... Pero ya es mas preferencia y organización que otra cosa.