Cita de: SrTrp en 28 Diciembre 2017, 22:03 PM
Lo que quiero es que me elimine el primer mensajeescribidoescrito 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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
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.