dicho comportamiento es errado, ya que
mysql_query() no devuelve datos, sino el apuntador hacía los resultados...
para obtener un dato especifico debes realizar el
fetching correspondiente:
Código PHP:
// MAL
$consulta = mysql_query($sql) or die(mysql_error());
echo "<h3> Nombre: $consulta[nombre] </h3>";
// BIEN
$consulta = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($consulta);
echo "<h3> Nombre: $row[nombre] </h3>";
¿si notas las diferencias?