Consulta a base de datos. Error en el código.

Hola.
Tengo una base de datos llamada bdconvocatoria con 5 campos: id, orden, numlista, nombre y apellidos.
Hago la siguiente consulta:
<?php
$consulta = "SELECT * FROM bdconvocatoria ORDER BY id";
$result = mysql_query($consulta, $connecata);
$elements = null;
while ($datos = mysql_fetch_assoc($result)){
$elements[$datos['id']] = $datos['orden'];
$elements[$datos['id']] = $datos['numlista'];
$elements[$datos['id']] = $datos['nombre'];
$elements[$datos['id']] = $datos['apellidos'];
}
Y finalmente, intento recuperar en pantalla los datos, con todos los campos listados por filas.
<?php
foreach ($elements as $id => $orden)
echo '<li id="element-'.$id.'" contenteditable="true">'.$orden.'</li>';
?>
Y solo salen todos los apellidos, uno debajo del otro.
¿Alguien podría ayudarme con el código necesario para que salgan ordenados todos los campos por filas?
Gracias y un saludo.
Hace mucho que no ando en esto, pero creo que es porque estás reasignando el valor a $elements y al final sólo te imprime el último (apellidos). Es decir, si yo hago esto:
$valor = "manzana";
$valor = "pera";

El resultado de valor será pera.
Entiendes a lo que me refiero?
Lo entiendo. He copiado este código de una consulta a una base de datos que tenia un solo campo.
Explico el problema:
Este tipo de consulta en el que se utiliza el while y luego el foreach, es desconocido para mi. Y porque lo utilizo? en lugar de otro sistema que conozco, pues porque veo que hay un elemento, el contenteditable, y no se si se puede utilizar con otro tipo de consulta.
Gracias por la respuesta y por lo que me puedas ayudar.