Ten cuidado con las comillas (") y los apóstrofes (') cuando usas PHP y SQL al mismo tiempo.
Para poder crear consultas donde usas valores de strings, no puedes usar apóstrofes cuando creas la consulta en el PHP, tienes que usar comillas:
Código PHP:
$consulta = mysql_query("SELECT * FROM mensajes WHERE destinatario='$destinatario' ORDER BY fecha DESC", $connect);
Como puedes ver, la cadena, dentro del SQL, debe quedar entre apóstrofes, no entre comillas, porque las comillas se usan en MySQL para otra cosa. Al poner la cadena como lo hacías, generabas un error de consulta no sintáctico, por lo que no lo podías detectar.
Muy probablemente el error de MySQL dijese algo como: "Columna 'xxxxxx' desconocida en la cláusula WHERE", porque las comillas se usan para lo mismo que el acento inverso: encierran nombres de bases, tablas o columnas, y no texto.
Una posibilidad es que uses esta forma:
Código PHP:
$consulta = mysql_query('SELECT * FROM mensajes WHERE destinatario=''$destinatario'' ORDER BY fecha DESC', $connect);
o bien:
Código PHP:
$consulta = mysql_query('SELECT * FROM mensajes WHERE destinatario=\'$destinatario\' ORDER BY fecha DESC', $connect);
Ambas son igualmente válidas, pero yo prefiero la primera de todas.
Ten en cuenta que cuando mezclas dos lenguajes dentro del mismo script, debes respetar las reglas de cada uno dentro de su contexto de ejecución, y el del SQL no es el ambiente de PHP sino el de MySQL.
En otras palabras: La sentencia SQL debe estar correctamente creada
para MySQL.